chore(tests): Final stabilization of test suite and full isolation of live_gui artifacts
This commit is contained in:
@@ -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."""
|
||||
|
||||
Reference in New Issue
Block a user