AUXteam's picture
Upload folder using huggingface_hub
cf2b99a verified
from fastapi.testclient import TestClient
from app.main import app
import time
from unittest.mock import patch, MagicMock
client = TestClient(app)
@patch("app.api.router.CodeIndexer")
@patch("app.api.router.WebResearcher")
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]