Spaces:
Sleeping
Sleeping
| import unittest | |
| from fastapi.testclient import TestClient | |
| from server.app import app | |
| import server.app as server_app | |
| class ServerApiTests(unittest.TestCase): | |
| def setUp(self): | |
| server_app.runtime_session = None | |
| self.client = TestClient(app) | |
| def test_health(self): | |
| response = self.client.get("/health") | |
| self.assertEqual(response.status_code, 200) | |
| self.assertEqual(response.json().get("status"), "ok") | |
| def test_reset_state_step_flow(self): | |
| reset_response = self.client.post("/reset", json={}) | |
| self.assertEqual(reset_response.status_code, 200) | |
| reset_payload = reset_response.json() | |
| self.assertIn("observation", reset_payload) | |
| self.assertIn("step_count", reset_payload) | |
| self.assertEqual(reset_payload["step_count"], 0) | |
| state_response = self.client.get("/state") | |
| self.assertEqual(state_response.status_code, 200) | |
| state_payload = state_response.json() | |
| self.assertTrue(state_payload.get("initialized")) | |
| step_response = self.client.post( | |
| "/step", | |
| json={"action": "edit_config: replace npm tset with npm test"}, | |
| ) | |
| self.assertEqual(step_response.status_code, 200) | |
| step_payload = step_response.json() | |
| self.assertIn("reward", step_payload) | |
| self.assertIn("done", step_payload) | |
| def test_step_requires_reset(self): | |
| server_app.runtime_session = None | |
| client = TestClient(app) | |
| response = client.post("/step", json={"action": "read_logs: inspect logs"}) | |
| self.assertEqual(response.status_code, 400) | |
| if __name__ == "__main__": | |
| unittest.main() | |