53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
import logging
|
|
import tkinter as tk
|
|
from tkinter.scrolledtext import ScrolledText
|
|
|
|
from tkinter_logger import TkinterLogger, get_logger
|
|
|
|
|
|
def test_tkinter_logger_integration(tmp_path):
|
|
"""Test that tkinter_logger from submodule works correctly."""
|
|
try:
|
|
root = tk.Tk()
|
|
root.withdraw()
|
|
except Exception:
|
|
import pytest
|
|
pytest.skip("Tk not available in this environment")
|
|
|
|
text = ScrolledText(root, height=5, state=tk.DISABLED)
|
|
|
|
try:
|
|
# Setup logger system
|
|
logger_system = TkinterLogger(root)
|
|
logger_system.setup(enable_console=False)
|
|
|
|
# Add tkinter handler
|
|
logger_system.add_tkinter_handler(text, level_colors={logging.INFO: 'black'})
|
|
|
|
# Get logger and log messages
|
|
lg = get_logger('pyucc.test')
|
|
lg.info('Hello logger')
|
|
lg.error('Error here')
|
|
|
|
# Wait for messages to be processed
|
|
root.update_idletasks()
|
|
root.after(300) # Wait for processing
|
|
root.update()
|
|
|
|
# Check content
|
|
content = text.get('1.0', 'end').strip()
|
|
assert 'Hello logger' in content or 'Error here' in content
|
|
finally:
|
|
logger_system.shutdown()
|
|
try:
|
|
root.destroy()
|
|
except Exception:
|
|
pass
|
|
|
|
|
|
def test_get_logger_function():
|
|
"""Test that get_logger works correctly."""
|
|
lg = get_logger('pyucc.test2')
|
|
assert lg is not None
|
|
assert lg.name == 'pyucc.test2'
|