LarsHoliday / tests /test_gui_styling.py
PHhTTPS's picture
style(gui): Refine Dark Mode styling and emoji icons
1b8ed0d
import unittest
from unittest.mock import MagicMock, patch
import sys
import os
# Add project root to path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
class TestGUIStyling(unittest.TestCase):
def test_styling_configuration(self):
"""
Test that the GUI configures dark mode styles.
"""
with patch('tkinter.Tk'), \
patch('tkinter.ttk.Style') as mock_style, \
patch('tkinter.ttk.Frame'), \
patch('tkinter.ttk.Label'), \
patch('tkinter.ttk.Entry'), \
patch('tkinter.ttk.Checkbutton'), \
patch('tkinter.ttk.Button'), \
patch('tkinter.StringVar', side_effect=lambda value=None: MagicMock(get=MagicMock(return_value=value))), \
patch('tkinter.IntVar', side_effect=lambda value=None: MagicMock(get=MagicMock(return_value=value))), \
patch('tkinter.BooleanVar', side_effect=lambda value=None: MagicMock(get=MagicMock(return_value=value))):
if 'gui_app' in sys.modules:
del sys.modules['gui_app']
from gui_app import HollandVacationApp
app = HollandVacationApp()
# Verify style.configure was called for different widget types
# We expect at least Dark.TFrame and Dark.TLabel
style_instance = mock_style.return_value
configured_styles = [call[0][0] for call in style_instance.configure.call_args_list]
self.assertIn("Dark.TFrame", configured_styles)
self.assertIn("Dark.TLabel", configured_styles)
self.assertIn("Dark.TButton", configured_styles)
if __name__ == '__main__':
unittest.main()