Skip to content

Commit 0a56a7e

Browse files
Fix API path in tests
1 parent 38e4a18 commit 0a56a7e

24 files changed

+146
-146
lines changed

tests/browser/aql_services/test_aql_service_view_options.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ async def test_raw_view_always_available(client):
5151
raw_view = next(v for v in result["views"] if v["type"] == "raw")
5252
assert raw_view["available"] is True
5353
assert raw_view["url"] is not None
54-
assert "/api/serps/1" in raw_view["url"]
54+
assert "/serps/1" in raw_view["url"]
5555

5656

5757
@pytest.mark.asyncio

tests/browser/search_router/test_search_router_archive_detail.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
@pytest.mark.asyncio
88
async def test_list_archives(client: TestClient, mock_elasticsearch):
9-
"""Test GET /api/archives"""
10-
response = client.get("/api/archives")
9+
"""Test GET /archives"""
10+
response = client.get("/archives")
1111

1212
# Should succeed
1313
assert response.status_code == 200
@@ -20,8 +20,8 @@ async def test_list_archives(client: TestClient, mock_elasticsearch):
2020

2121
@pytest.mark.asyncio
2222
async def test_list_archives_with_limit(client: TestClient, mock_elasticsearch):
23-
"""Test GET /api/archives with limit parameter"""
24-
response = client.get("/api/archives?limit=50")
23+
"""Test GET /archives with limit parameter"""
24+
response = client.get("/archives?limit=50")
2525

2626
assert response.status_code == 200
2727
data = response.json()
@@ -32,8 +32,8 @@ async def test_list_archives_with_limit(client: TestClient, mock_elasticsearch):
3232

3333
@pytest.mark.asyncio
3434
async def test_list_archives_invalid_limit(client: TestClient, mock_elasticsearch):
35-
"""Test GET /api/archives with invalid limit"""
36-
response = client.get("/api/archives?limit=0")
35+
"""Test GET /archives with invalid limit"""
36+
response = client.get("/archives?limit=0")
3737

3838
# Should fail validation
3939
assert response.status_code == 422
@@ -44,7 +44,7 @@ async def test_list_archives_returns_archive_structure(
4444
client: TestClient, mock_elasticsearch
4545
):
4646
"""Test that list_archives returns proper archive metadata"""
47-
response = client.get("/api/archives")
47+
response = client.get("/archives")
4848

4949
assert response.status_code == 200
5050
data = response.json()
@@ -71,7 +71,7 @@ async def test_list_archives_returns_archive_structure(
7171
@pytest.mark.asyncio
7272
async def test_internet_archive_details(client: TestClient, mock_elasticsearch):
7373
"""Test that Internet Archive is correctly identified in list"""
74-
response = client.get("/api/archives")
74+
response = client.get("/archives")
7575

7676
assert response.status_code == 200
7777
data = response.json()
@@ -91,7 +91,7 @@ async def test_internet_archive_details(client: TestClient, mock_elasticsearch):
9191
@pytest.mark.asyncio
9292
async def test_archive_list_sorted_by_count(client: TestClient, mock_elasticsearch):
9393
"""Test that archives are sorted by SERP count (descending)"""
94-
response = client.get("/api/archives")
94+
response = client.get("/archives")
9595

9696
assert response.status_code == 200
9797
data = response.json()

tests/browser/search_router/test_search_router_archive_statistics.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ async def search(self, *args, **kwargs):
3838

3939

4040
def test_archive_statistics_router(client, mock_archive_statistics_client):
41-
"""Test GET /api/archives/{archive_id}/statistics"""
41+
"""Test GET /archives/{archive_id}/statistics"""
4242
archive_id = "https://web.archive.org/web"
43-
resp = client.get(f"/api/archives/{archive_id}/statistics")
43+
resp = client.get(f"/archives/{archive_id}/statistics")
4444

4545
assert resp.status_code == 200
4646
data = resp.json()
@@ -61,7 +61,7 @@ def test_archive_statistics_with_params(client, mock_archive_statistics_client):
6161
"""Test archive statistics with custom parameters"""
6262
archive_id = "https://web.archive.org/web"
6363
resp = client.get(
64-
f"/api/archives/{archive_id}/statistics?interval=week&last_n_months=12"
64+
f"/archives/{archive_id}/statistics?interval=week&last_n_months=12"
6565
)
6666
assert resp.status_code == 200
6767
data = resp.json()
@@ -74,7 +74,7 @@ def test_archive_statistics_with_params(client, mock_archive_statistics_client):
7474
def test_archive_statistics_default_interval(client, mock_archive_statistics_client):
7575
"""Test that default interval is 'month'"""
7676
archive_id = "https://web.archive.org/web"
77-
resp = client.get(f"/api/archives/{archive_id}/statistics")
77+
resp = client.get(f"/archives/{archive_id}/statistics")
7878
assert resp.status_code == 200
7979
data = resp.json()
8080

@@ -90,7 +90,7 @@ async def search(self, *args, **kwargs):
9090

9191
with patch("archive_query_log.browser.services.aql_service.get_es_client") as mock_get_client:
9292
mock_get_client.return_value = MockEmptyClient()
93-
resp = client.get("/api/archives/https://nonexistent.archive/web/statistics")
93+
resp = client.get("/archives/https://nonexistent.archive/web/statistics")
9494

9595
# Should return 404 because the service returns None when serp_count is 0
9696
assert resp.status_code == 404
@@ -102,7 +102,7 @@ def test_archive_statistics_with_different_intervals(
102102
"""Test archive statistics with different interval values"""
103103
archive_id = "https://web.archive.org/web"
104104
for interval in ["day", "week", "month"]:
105-
resp = client.get(f"/api/archives/{archive_id}/statistics?interval={interval}")
105+
resp = client.get(f"/archives/{archive_id}/statistics?interval={interval}")
106106
assert resp.status_code == 200
107107
data = resp.json()
108108
assert data["archive_id"] == archive_id
@@ -111,7 +111,7 @@ def test_archive_statistics_with_different_intervals(
111111
def test_archive_statistics_structure(client, mock_archive_statistics_client):
112112
"""Test that archive statistics response has correct structure"""
113113
archive_id = "https://web.archive.org/web"
114-
resp = client.get(f"/api/archives/{archive_id}/statistics")
114+
resp = client.get(f"/archives/{archive_id}/statistics")
115115

116116
assert resp.status_code == 200
117117
data = resp.json()
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
"""Tests for Archives endpoints (/api/archives and /api/archive/{id})"""
1+
"""Tests for Archives endpoints (/archives and /archive/{id})"""
22

33

44
def test_get_all_archives(client):
5-
response = client.get("/api/archives")
5+
response = client.get("/archives")
66
assert response.status_code == 200
77
data = response.json()
88
assert "total" in data
@@ -11,7 +11,7 @@ def test_get_all_archives(client):
1111

1212

1313
def test_get_all_archives_with_size_limit(client):
14-
response = client.get("/api/archives?size=1")
14+
response = client.get("/archives?size=1")
1515
assert response.status_code == 200
1616
data = response.json()
1717
assert len(data["archives"]) == 1

tests/browser/search_router/test_search_router_archives_detail_canonical.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Tests for the canonical archive detail endpoint using memento_api_url.
22
3-
Covers the new route: /api/archives/{archive_id:path}
3+
Covers the new route: /archives/{archive_id:path}
44
"""
55

66
from urllib.parse import quote
@@ -13,7 +13,7 @@ async def test_archive_detail_canonical_success(client: TestClient):
1313
archive_id = "https://web.archive.org/web"
1414
encoded = quote(archive_id, safe="")
1515

16-
resp = client.get(f"/api/archives/{encoded}")
16+
resp = client.get(f"/archives/{encoded}")
1717
assert resp.status_code == 200
1818
data = resp.json()
1919

@@ -41,6 +41,6 @@ async def test_archive_detail_canonical_not_found(client: TestClient):
4141
archive_id = "https://unknown.example.org"
4242
encoded = quote(archive_id, safe="")
4343

44-
resp = client.get(f"/api/archives/{encoded}")
44+
resp = client.get(f"/archives/{encoded}")
4545
assert resp.status_code == 404
4646
assert resp.json()["detail"] == "No results found"

tests/browser/search_router/test_search_router_archives_edge_cases.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
def test_list_archives_invalid_size_parameter(client):
77
"""Test that invalid size parameter returns 422 error"""
88
# Size too small
9-
response = client.get("/api/archives?size=0")
9+
response = client.get("/archives?size=0")
1010
assert response.status_code == 422
1111
assert "Invalid size parameter" in response.json()["detail"]
1212

1313
# Size too large
14-
response = client.get("/api/archives?size=1001")
14+
response = client.get("/archives?size=1001")
1515
assert response.status_code == 422
1616
assert "Invalid size parameter" in response.json()["detail"]
1717

@@ -30,7 +30,7 @@ def test_list_archives_with_size_alias(client):
3030
"archive_query_log.browser.routers.search.aql_service.list_all_archives",
3131
new=AsyncMock(return_value=mock_result),
3232
):
33-
response = client.get("/api/archives?size=2")
33+
response = client.get("/archives?size=2")
3434
assert response.status_code == 200
3535
data = response.json()
3636
assert len(data["archives"]) == 2

tests/browser/search_router/test_search_router_compare.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def test_compare_serps_success(client):
4040
},
4141
}
4242

43-
response = client.get("/api/serps/compare?ids=serp1,serp2")
43+
response = client.get("/serps/compare?ids=serp1,serp2")
4444
assert response.status_code == 200
4545
data = response.json()
4646
assert data["comparison_summary"]["serp_count"] == 2
@@ -65,7 +65,7 @@ def test_compare_serps_three_serps(client):
6565
"similarity_metrics": {},
6666
}
6767

68-
response = client.get("/api/serps/compare?ids=serp1,serp2,serp3")
68+
response = client.get("/serps/compare?ids=serp1,serp2,serp3")
6969
assert response.status_code == 200
7070
data = response.json()
7171
assert data["comparison_summary"]["serp_count"] == 3
@@ -89,36 +89,36 @@ def test_compare_serps_max_five(client):
8989
"similarity_metrics": {},
9090
}
9191

92-
response = client.get("/api/serps/compare?ids=s1,s2,s3,s4,s5")
92+
response = client.get("/serps/compare?ids=s1,s2,s3,s4,s5")
9393
assert response.status_code == 200
9494
data = response.json()
9595
assert data["comparison_summary"]["serp_count"] == 5
9696

9797

9898
def test_compare_serps_too_few_ids(client):
9999
"""Test that comparison requires at least 2 IDs"""
100-
response = client.get("/api/serps/compare?ids=serp1")
100+
response = client.get("/serps/compare?ids=serp1")
101101
assert response.status_code == 400
102102
assert "At least 2 SERP IDs" in response.json()["detail"]
103103

104104

105105
def test_compare_serps_no_ids(client):
106106
"""Test that IDs parameter is required"""
107-
response = client.get("/api/serps/compare")
107+
response = client.get("/serps/compare")
108108
assert response.status_code == 422 # FastAPI validation error
109109

110110

111111
def test_compare_serps_too_many_ids(client):
112112
"""Test that comparison rejects more than 5 IDs"""
113113
ids = ",".join([f"serp{i}" for i in range(1, 7)]) # 6 IDs
114-
response = client.get(f"/api/serps/compare?ids={ids}")
114+
response = client.get(f"/serps/compare?ids={ids}")
115115
assert response.status_code == 400
116116
assert "Maximum 5 SERPs" in response.json()["detail"]
117117

118118

119119
def test_compare_serps_duplicate_ids(client):
120120
"""Test that duplicate IDs are rejected"""
121-
response = client.get("/api/serps/compare?ids=serp1,serp2,serp1")
121+
response = client.get("/serps/compare?ids=serp1,serp2,serp1")
122122
assert response.status_code == 400
123123
assert "Duplicate SERP IDs" in response.json()["detail"]
124124

@@ -141,7 +141,7 @@ def test_compare_serps_whitespace_handling(client):
141141
"similarity_metrics": {},
142142
}
143143

144-
response = client.get("/api/serps/compare?ids=serp1, serp2 , serp3")
144+
response = client.get("/serps/compare?ids=serp1, serp2 , serp3")
145145
# Should strip whitespace and work
146146
assert response.status_code == 200 or response.status_code == 400
147147

@@ -151,7 +151,7 @@ def test_compare_serps_not_found(client):
151151
with patch("archive_query_log.browser.services.aql_service.compare_serps") as mock_compare:
152152
mock_compare.return_value = None # Indicates SERP not found
153153

154-
response = client.get("/api/serps/compare?ids=invalid1,invalid2")
154+
response = client.get("/serps/compare?ids=invalid1,invalid2")
155155
assert response.status_code == 404
156156

157157

@@ -173,13 +173,13 @@ def test_compare_serps_with_url_encoding(client):
173173
"similarity_metrics": {},
174174
}
175175

176-
response = client.get("/api/serps/compare?ids=abc-123%2Cdef-456")
176+
response = client.get("/serps/compare?ids=abc-123%2Cdef-456")
177177
assert response.status_code == 200
178178

179179

180180
def test_compare_serps_empty_string_ids(client):
181181
"""Test that empty strings in ID list are filtered out"""
182-
response = client.get("/api/serps/compare?ids=serp1,,serp2")
182+
response = client.get("/serps/compare?ids=serp1,,serp2")
183183
# Should work if it filters empty strings, or fail if validation is strict
184184
# Depending on implementation, adjust assertion
185185
assert response.status_code in [200, 400]

tests/browser/search_router/test_search_router_error_handling.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ async def mock_search_connection_error(*args, **kwargs):
2626

2727
client = TestClient(app)
2828

29-
response = client.get("/api/serps?query=test")
29+
response = client.get("/serps?query=test")
3030
assert response.status_code == 503
3131
assert "connection failed" in response.json()["detail"].lower()
3232

@@ -46,7 +46,7 @@ async def mock_search_bad_request(*args, **kwargs):
4646

4747
client = TestClient(app)
4848

49-
response = client.get("/api/serps?query=test")
49+
response = client.get("/serps?query=test")
5050
# Note: general exceptions raise 500, not 400
5151
# (400 is only for direct RequestError in safe_search)
5252
assert response.status_code in [400, 500]
@@ -71,11 +71,11 @@ async def search(self, *args, **kwargs):
7171
monkeypatch.setattr("archive_query_log.browser.services.aql_service.get_es_client", lambda: mock_client)
7272

7373
# Valid interval
74-
resp = client.get("/api/serps/preview?query=test&interval=day")
74+
resp = client.get("/serps/preview?query=test&interval=day")
7575
assert resp.status_code == 200
7676

7777
# Valid interval
78-
resp = client.get("/api/serps/preview?query=test&interval=week")
78+
resp = client.get("/serps/preview?query=test&interval=week")
7979
assert resp.status_code == 200
8080

8181

@@ -93,7 +93,7 @@ async def mock_suggestions(*args, **kwargs):
9393

9494
monkeypatch.setattr("archive_query_log.browser.services.aql_service.search_suggestions", mock_suggestions)
9595

96-
resp = client.get("/api/suggestions?prefix=test&size=5")
96+
resp = client.get("/suggestions?prefix=test&size=5")
9797
assert resp.status_code == 200
9898
data = resp.json()
9999
assert "suggestions" in data

tests/browser/search_router/test_search_router_preview.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ async def search(self, *args, **kwargs):
4444

4545

4646
def test_serps_preview_router(client, mock_preview_client):
47-
resp = client.get("/api/serps/preview?query=test")
47+
resp = client.get("/serps/preview?query=test")
4848
assert resp.status_code == 200
4949
data = resp.json()
5050
assert "total_hits" in data
@@ -57,7 +57,7 @@ def test_serps_preview_router(client, mock_preview_client):
5757
def test_serps_preview_with_params(client, mock_preview_client):
5858
"""Test preview with custom top_n_queries and interval parameters"""
5959
resp = client.get(
60-
"/api/serps/preview?query=test&top_n_queries=15&"
60+
"/serps/preview?query=test&top_n_queries=15&"
6161
"interval=week&top_providers=10&top_archives=8"
6262
)
6363
assert resp.status_code == 200
@@ -70,7 +70,7 @@ def test_serps_preview_with_params(client, mock_preview_client):
7070

7171
def test_serps_preview_with_last_n_months(client, mock_preview_client):
7272
"""Test preview with last_n_months filter"""
73-
resp = client.get("/api/serps/preview?query=test&last_n_months=12")
73+
resp = client.get("/serps/preview?query=test&last_n_months=12")
7474
assert resp.status_code == 200
7575
data = resp.json()
7676
assert data["query"] == "test"

tests/browser/search_router/test_search_router_provider_by_id.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
@pytest.fixture
99
def app():
1010
app = FastAPI()
11-
app.include_router(router, prefix="/api")
11+
app.include_router(router, prefix="")
1212
return app
1313

1414

@@ -24,7 +24,7 @@ def test_provider_by_id_success(client):
2424
mock_es.get.return_value = fake_doc
2525
mock_get_client.return_value = mock_es
2626

27-
resp = client.get("/api/providers/google")
27+
resp = client.get("/providers/google")
2828
assert resp.status_code == 200
2929
data = resp.json()
3030
assert data["provider_id"] == "google"
@@ -39,7 +39,7 @@ def test_providers_by_id_success(client):
3939
mock_es.get.return_value = fake_doc
4040
mock_get_client.return_value = mock_es
4141

42-
resp = client.get("/api/providers/google")
42+
resp = client.get("/providers/google")
4343
assert resp.status_code == 200
4444
data = resp.json()
4545
assert data["provider_id"] == "google"
@@ -54,7 +54,7 @@ def test_provider_by_id_not_found(client):
5454
mock_es.search.return_value = {"hits": {"hits": []}}
5555
mock_get_client.return_value = mock_es
5656

57-
resp = client.get("/api/providers/unknown")
57+
resp = client.get("/providers/unknown")
5858
assert resp.status_code == 404
5959
data = resp.json()
6060
assert data["detail"] == "No results found"

0 commit comments

Comments
 (0)