45 lines
1.3 KiB
Python
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
|