Задать вопрос
@fidjio

Pytest. Почему декоратор не записывает в файл логи?

Всем привет! У меня написан декоратор, который записывает логи работы переданной функции в файл, если указано имя файла. При работе через main декоратор работает исправно, но при попытке написать код теста и выполнить его - декоратор отказывается записывать данные в файл. Подскажите что это может быть? Код теста ниже:
import tempfile
import os
import pytest
import logging

from src.decorators import log


def test_decorator_log_not_error_rec_file(caplog):
    # Тестирование с временным файлом
    custom_dir = os.path.abspath("../logs")
    with tempfile.NamedTemporaryFile(dir=custom_dir, delete=False, mode="w") as temp_file:
        filename = temp_file.name
        file_name_for_decorator = os.path.basename(filename)

    @log(filename=file_name_for_decorator)
    def get_func_to_log(func, *args, **kwargs):
        return func(*args, **kwargs)

    def summ_(a, b):
        return a + b

    get_func_to_log(summ_, 2, 4)
  • Вопрос задан
  • 41 просмотр
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
with tempfile.NamedTemporaryFile(dir=custom_dir, delete=False, mode="w") as temp_file:

Немедленно по выходу из with файл закроется, и будет удалён.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы