From 9c7909bde5cac80d7424e35e5937d82969b3631f Mon Sep 17 00:00:00 2001 From: deadzilla Date: Fri, 12 Jun 2026 21:11:23 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B0=D0=B2=D1=82=D0=BE=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=BE=D0=B5=20=D1=81=D0=BE?= =?UTF-8?q?=D0=B7=D0=B4=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B4=D0=B8=D1=80=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=D0=BE=D1=80=D0=B8=D0=B8=20logs=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81=D0=BA=D0=B5=20=D0=B1?= =?UTF-8?q?=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_logger.py | 14 ++++++++------ utils/logger.py | 16 ++++++++-------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/tests/test_logger.py b/tests/test_logger.py index c1f3472..41ef05f 100644 --- a/tests/test_logger.py +++ b/tests/test_logger.py @@ -60,21 +60,23 @@ def test_file_handler_when_logs_dir_exists() -> None: os.chdir(orig_cwd) -def test_no_file_handler_when_logs_dir_missing() -> None: - """FileHandler не добавляется если директории logs нет.""" +def test_logs_dir_created_automatically() -> None: + """Директория logs создаётся автоматически, если её нет.""" orig_cwd = os.getcwd() with tempfile.TemporaryDirectory() as tmpdir: os.chdir(tmpdir) # Убедиться что logs/ нет logs_dir = Path("logs") - if logs_dir.exists(): - import shutil - shutil.rmtree(logs_dir) + assert not logs_dir.exists() try: with _isolated_logger() as root: + assert logs_dir.exists() file_handlers = [h for h in root.handlers if isinstance(h, logging.FileHandler)] - assert len(file_handlers) == 0 + assert len(file_handlers) >= 1 + # Закрыть file handler чтобы освободить файл на Windows + for h in file_handlers: + h.close() finally: os.chdir(orig_cwd) diff --git a/utils/logger.py b/utils/logger.py index 764c04a..01e3c3e 100644 --- a/utils/logger.py +++ b/utils/logger.py @@ -34,15 +34,15 @@ def setup_logging() -> logging.Logger: root.setLevel(level) root.addHandler(console) - # File handler — logs/bot.log (если директория logs доступна) + # File handler — logs/bot.log log_dir = Path("logs") - if log_dir.exists(): - file_handler = logging.FileHandler( - log_dir / "bot.log", encoding="utf-8" - ) - file_handler.setLevel(level) - file_handler.setFormatter(formatter) - root.addHandler(file_handler) + log_dir.mkdir(parents=True, exist_ok=True) + file_handler = logging.FileHandler( + log_dir / "bot.log", encoding="utf-8" + ) + file_handler.setLevel(level) + file_handler.setFormatter(formatter) + root.addHandler(file_handler) # Подавить шум от aiohttp и discord.internal logging.getLogger("aiohttp").setLevel(logging.WARNING)