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

45 lines
1.3 KiB
Python

import logging
import tkinter as tk
from tkinter.scrolledtext import ScrolledText
from pyucc.utils import logger as ulogger
def test_setup_basic_logging_and_tk_handler(tmp_path):
try:
root = tk.Tk()
root.withdraw()
except Exception:
import pytest
pytest.skip("Tk not available in this environment")
text = ScrolledText(root, height=5)
# setup logging
ulogger.setup_basic_logging(root)
try:
# add tkinter handler
ulogger.add_tkinter_handler(text, {"colors": {logging.INFO: 'black'}})
lg = ulogger.get_logger('pyucc.test')
lg.info('Hello logger')
lg.error('Error here')
# force processing cycle
ulogger._process_global_log_queue()
# ensure text widget has content
content = text.get('1.0', 'end').strip()
assert 'Hello logger' in content or 'Error here' in content
finally:
ulogger.shutdown_logging_system()
try:
root.destroy()
except Exception:
pass
def test_queue_putting_handler_and_temporary_level():
q = ulogger.QueuePuttingHandler.__init__
# Test temporary_log_level
lg = logging.getLogger('pyucc.temp')
old = lg.level
with ulogger.temporary_log_level(lg, logging.DEBUG):
assert lg.level == logging.DEBUG
assert lg.level == old