SXXXXXXX_PyUCC/tests/test_utils_apply_saved_levels.py
2025-11-25 12:18:55 +01:00

39 lines
1.2 KiB
Python

import os
import json
import logging
from types import SimpleNamespace
from pyucc.utils import logger as ulogger
def test_apply_saved_logger_levels(tmp_path, monkeypatch):
# Create a fake ConfigManager that points to tmp_path
class FakeCfg:
def __init__(self, filepath):
self.filepath = str(filepath)
def get_general_settings(self):
return {}
cfgdir = tmp_path / "cfgdir"
cfgdir.mkdir()
prefs = {"saved_levels": {"pyucc.test": "DEBUG"}}
prefs_path = cfgdir / "logger_prefs.json"
prefs_path.write_text(json.dumps(prefs))
def fake_config_manager():
# return an object whose filepath is the directory containing prefs
obj = SimpleNamespace()
obj.filepath = str(prefs_path)
def get_general_settings():
return {}
obj.get_general_settings = get_general_settings
return obj
monkeypatch.setattr(ulogger, 'ConfigManager', lambda: fake_config_manager())
# ensure file exists next to filepath
# call apply_saved_logger_levels should not raise
ulogger.apply_saved_logger_levels()
# logger level may be set
lvl = logging.getLogger('pyucc.test').level
assert isinstance(lvl, int)