chore(tests): Final stabilization of test suite and full isolation of live_gui artifacts

This commit is contained in:
2026-03-04 01:05:56 -05:00
parent 966b5c3d03
commit 1be6193ee0
18 changed files with 7352 additions and 152 deletions

View File

@@ -11,6 +11,7 @@ class TestHeadlessAPI(unittest.TestCase):
def setUp(self) -> None:
with patch('gui_2.session_logger.open_session'), \
patch('gui_2.ai_client.set_provider'), \
patch('gui_2.PerformanceMonitor'), \
patch('gui_2.session_logger.close_session'):
self.app_instance = gui_2.App()
# Set a default API key for tests
@@ -23,6 +24,10 @@ class TestHeadlessAPI(unittest.TestCase):
self.api = self.app_instance.create_api()
self.client = TestClient(self.api)
def tearDown(self) -> None:
if hasattr(self, 'app_instance'):
self.app_instance.shutdown()
def test_health_endpoint(self) -> None:
response = self.client.get("/health")
self.assertEqual(response.status_code, 200)
@@ -114,8 +119,9 @@ class TestHeadlessStartup(unittest.TestCase):
@patch('gui_2.api_hooks.HookServer')
@patch('gui_2.save_config')
@patch('gui_2.ai_client.cleanup')
@patch('gui_2.PerformanceMonitor')
@patch('uvicorn.run') # Mock uvicorn.run to prevent hanging
def test_headless_flag_prevents_gui_run(self, mock_uvicorn_run: MagicMock, mock_cleanup: MagicMock, mock_save_config: MagicMock, mock_hook_server: MagicMock, mock_immapp_run: MagicMock) -> None:
def test_headless_flag_prevents_gui_run(self, mock_uvicorn_run: MagicMock, mock_perf: MagicMock, mock_cleanup: MagicMock, mock_save_config: MagicMock, mock_hook_server: MagicMock, mock_immapp_run: MagicMock) -> None:
test_args = ["gui_2.py", "--headless"]
with patch.object(sys, 'argv', test_args):
with patch('gui_2.session_logger.close_session'), \
@@ -128,9 +134,11 @@ class TestHeadlessStartup(unittest.TestCase):
mock_immapp_run.assert_not_called()
# Expectation: uvicorn.run SHOULD be called
mock_uvicorn_run.assert_called_once()
app.shutdown()
@patch('gui_2.immapp.run')
def test_normal_startup_calls_gui_run(self, mock_immapp_run: MagicMock) -> None:
@patch('gui_2.PerformanceMonitor')
def test_normal_startup_calls_gui_run(self, mock_perf: MagicMock, mock_immapp_run: MagicMock) -> None:
test_args = ["gui_2.py"]
with patch.object(sys, 'argv', test_args):
# In normal mode, it should still call immapp.run
@@ -143,6 +151,7 @@ class TestHeadlessStartup(unittest.TestCase):
app._fetch_models = MagicMock()
app.run()
mock_immapp_run.assert_called_once()
app.shutdown()
def test_fastapi_installed() -> None:
"""Verify that fastapi is installed."""