36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import unittest
|
|
from fastapi.testclient import TestClient
|
|
import gui_2
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
class TestHeadlessAPI(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
# We need an App instance to initialize the API, but we want to avoid GUI stuff
|
|
with patch('gui_2.session_logger.open_session'), \
|
|
patch('gui_2.ai_client.set_provider'), \
|
|
patch('gui_2.session_logger.close_session'):
|
|
cls.app_instance = gui_2.App()
|
|
# We will implement create_api method in App
|
|
if hasattr(cls.app_instance, 'create_api'):
|
|
cls.api = cls.app_instance.create_api()
|
|
else:
|
|
cls.api = MagicMock()
|
|
cls.client = TestClient(cls.api)
|
|
|
|
def test_health_endpoint(self):
|
|
response = self.client.get("/health")
|
|
self.assertEqual(response.status_code, 200)
|
|
self.assertEqual(response.json(), {"status": "ok"})
|
|
|
|
def test_status_endpoint(self):
|
|
response = self.client.get("/status")
|
|
self.assertEqual(response.status_code, 200)
|
|
data = response.json()
|
|
self.assertIn("provider", data)
|
|
self.assertIn("model", data)
|
|
self.assertIn("active_project", data)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|