from datetime import date from fastapi.testclient import TestClient from app.main import ActivityResult, app from app.settings import get_settings def test_activity_svg_returns_svg_content_type(monkeypatch, tmp_path) -> None: monkeypatch.setenv("GITHUB_USERNAME", "octocat") monkeypatch.setenv("GITEA_BASE_URL", "https://gitea.example.com") monkeypatch.setenv("GITEA_USERNAME", "octocat") monkeypatch.setenv("CACHE_DIR", str(tmp_path)) get_settings.cache_clear() async def fake_collect_merged_activity(settings, cache, options): return ActivityResult( merged={ "2026-01-01": {"github": 1, "gitea": 2, "total": 3}, "2026-01-02": {"github": 0, "gitea": 0, "total": 0}, }, stale=False, from_date=date(2026, 1, 1), to_date=date(2026, 1, 2), days_count=2, ) monkeypatch.setattr("app.main.collect_merged_activity", fake_collect_merged_activity) client = TestClient(app) response = client.get("/activity.svg") assert response.status_code == 200 assert response.headers["content-type"].startswith("image/svg+xml") assert "