"""Comprehensive tests for TUI modules.""" import pytest from unittest.mock import MagicMock, patch import sys class TestTuiColorPair: """Tests for TUI color constants.""" def test_color_pair_enum(self): """Test ColorPair enum values exist.""" from astrbot.tui.screen import ColorPair assert ColorPair.WHITE is not None assert ColorPair.CYAN is not None assert ColorPair.GREEN is not None assert ColorPair.YELLOW is not None assert ColorPair.RED is not None assert ColorPair.MAGENTA is not None assert ColorPair.DIM is not None def test_color_pair_header(self): """Test header color pairs.""" from astrbot.tui.screen import ColorPair assert ColorPair.HEADER_BG is not None assert ColorPair.HEADER_FG is not None def test_color_pair_messages(self): """Test message color pairs.""" from astrbot.tui.screen import ColorPair assert ColorPair.USER_MSG is not None assert ColorPair.BOT_MSG is not None assert ColorPair.SYSTEM_MSG is not None def test_color_pair_ui(self): """Test UI element color pairs.""" from astrbot.tui.screen import ColorPair assert ColorPair.INPUT_BG is not None assert ColorPair.STATUS_BG is not None assert ColorPair.BORDER is not None class TestTuiBoxDrawing: """Tests for TUI box drawing characters.""" def test_box_vertical(self): """Test vertical box character.""" from astrbot.tui.screen import BOX_VERT assert BOX_VERT == "│" def test_box_horizontal(self): """Test horizontal box character.""" from astrbot.tui.screen import BOX_HORIZ assert BOX_HORIZ == "─" def test_box_corners(self): """Test box corner characters.""" from astrbot.tui.screen import BOX_TL, BOX_TR, BOX_BL, BOX_BR assert BOX_TL == "┌" assert BOX_TR == "┐" assert BOX_BL == "└" assert BOX_BR == "┘" def test_box_junctions(self): """Test box junction characters.""" from astrbot.tui.screen import BOX_LT, BOX_RT, BOX_BT, BOX_TT, BOX_CROSS assert BOX_LT is not None assert BOX_RT is not None assert BOX_BT is not None assert BOX_TT is not None assert BOX_CROSS is not None class TestTuiInit: """Tests for TUI __init__ module.""" def test_tui_init_imports(self): """Test that TUI modules can be imported.""" # These should not raise from astrbot.tui import Screen from astrbot.tui import run_curses def test_tui_exports(self): """Test TUI module exports.""" from astrbot.tui import __all__ assert isinstance(__all__, list) class TestTuiApp: """Tests for TUI application.""" def test_tui_app_exists(self): """Test TUI app module exists.""" from astrbot.tui import tui_app assert tui_app is not None def test_tui_main_exists(self): """Test TUI main module exists.""" from astrbot.tui import __main__ assert __main__ is not None