Spaces:
No application file
No application file
| import json | |
| from pathlib import Path | |
| import pytest | |
| import respx | |
| from httpx import Response | |
| from fastapi.testclient import TestClient | |
| from app.main import app | |
| def mock_http(respx_mock: respx.MockRouter): | |
| # 1) Mock SerpAPI (Google) search | |
| gh_search = json.loads(Path("test/data/github_search.json").read_text()) | |
| respx_mock.get("https://serpapi.com/search.json").mock( | |
| return_value=Response(200, json=gh_search) | |
| ) | |
| # 2) Mock GitHub profile HTML fetch | |
| gh_html = Path("test/data/github_profile.html").read_text() | |
| respx_mock.get(respx.MockRouter._compile(r"https://github\.com/.*")).mock( | |
| return_value=Response(200, text=gh_html) | |
| ) | |
| # 3) Mock RapidAPI LinkedIn profile fetch | |
| ln_json = json.loads(Path("test/data/mock_linkedin.json").read_text()) | |
| respx_mock.get(respx.MockRouter._compile(r"https://fresh-linkedin-profile-data\.p\.rapidapi\.com/.*")).mock( | |
| return_value=Response(200, json=ln_json) | |
| ) | |
| yield | |
| def client() -> TestClient: | |
| return TestClient(app) |