| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- from fastapi.testclient import TestClient
- from content_agent import api
- from content_agent.integrations.mock_platform import MockPlatformClient
- from content_agent.run_service import RunService
- def test_api_runs_and_queries_mock_chain(tmp_path, monkeypatch):
- monkeypatch.setattr(api, "service", RunService(runtime_root=tmp_path / "runtime" / "v1"))
- client = TestClient(api.app)
- response = client.post("/runs", json={"trace_id": "test_trace_api", "platform": "douyin"})
- assert response.status_code == 200
- assert response.json()["platform_mode"] == "mock"
- for path in [
- "/runs/test_trace_api",
- "/runs/test_trace_api/candidates",
- "/runs/test_trace_api/rule-decisions",
- "/runs/test_trace_api/source-edges",
- "/runs/test_trace_api/final-output",
- "/runs/test_trace_api/strategy-review",
- "/runs/test_trace_api/validation",
- ]:
- get_response = client.get(path)
- assert get_response.status_code == 200, path
- review = client.get("/runs/test_trace_api/strategy-review").json()["data"]
- assert review["summary"]["pool_count"] == 1
- assert review["suggestions"]
- validation = client.get("/runs/test_trace_api/validation").json()
- assert validation["status"] == "pass"
- summary = client.get("/runs/test_trace_api").json()
- assert summary["validation_status"] == "pass"
- def test_api_accepts_real_platform_mode_without_changing_default(tmp_path, monkeypatch):
- selected_modes = []
- def fake_platform_client(self, platform_mode):
- selected_modes.append(platform_mode)
- return MockPlatformClient()
- monkeypatch.setattr(RunService, "_platform_client", fake_platform_client)
- monkeypatch.setattr(api, "service", RunService(runtime_root=tmp_path / "runtime" / "v1"))
- client = TestClient(api.app)
- default_response = client.post("/runs", json={"trace_id": "test_trace_default_mode"})
- real_response = client.post(
- "/runs",
- json={"trace_id": "test_trace_real_mode", "platform_mode": "real"},
- )
- assert default_response.status_code == 200
- assert default_response.json()["platform_mode"] == "mock"
- assert real_response.status_code == 200
- assert real_response.json()["platform_mode"] == "real"
- assert selected_modes == ["mock", "real"]
|