Spaces:
Running
Running
| from fastapi.testclient import TestClient | |
| from app.main import app | |
| import time | |
| from unittest.mock import patch, MagicMock | |
| client = TestClient(app) | |
| def test_analyze_flow(mock_web_researcher_class, mock_indexer_class): | |
| # Mock CodeIndexer | |
| mock_indexer = MagicMock() | |
| mock_indexer_class.return_value = mock_indexer | |
| # Mock WebResearcher | |
| mock_web_researcher = MagicMock() | |
| mock_web_researcher_class.return_value = mock_web_researcher | |
| mock_web_researcher.research_github.return_value = "Mocked GitHub results" | |
| mock_web_researcher.research_hf_spaces.return_value = "Mocked HF Spaces results" | |
| # Submit analysis | |
| response = client.post("/analyze", json={"repo_url": "https://github.com/dummy/repo", "project_description": "Test Project"}) | |
| assert response.status_code == 200 | |
| task_id = response.json()["task_id"] | |
| assert task_id | |
| # Wait a bit for background task | |
| time.sleep(1) | |
| response = client.get(f"/report/{task_id}") | |
| assert response.status_code == 200 | |
| data = response.json() | |
| print(f"Task status: {data['status']}") | |
| if data['status'] == 'failed': | |
| print(f"Error: {data.get('error')}") | |
| assert data["status"] == "completed" | |
| assert "github_research" in data["report"]["improvements"][0] | |
| assert "hf_spaces_research" in data["report"]["improvements"][0] | |