Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/api/views/test_origin.py
Show First 20 Lines • Show All 358 Lines • ▼ Show 20 Lines | def test_api_lookup_origin_visit_not_found(api_client, origin): | ||||
assert rv["Content-Type"] == "application/json" | assert rv["Content-Type"] == "application/json" | ||||
assert rv.data == { | assert rv.data == { | ||||
"exception": "NotFoundExc", | "exception": "NotFoundExc", | ||||
"reason": "Origin %s or its visit with id %s not found!" | "reason": "Origin %s or its visit with id %s not found!" | ||||
% (origin["url"], max_visit_id + 1), | % (origin["url"], max_visit_id + 1), | ||||
} | } | ||||
def test_api_origins_wrong_input(api_client, archive_data): | |||||
"""Should fail with 400 if the input is deprecated. | |||||
""" | |||||
# fail if wrong input | |||||
url = reverse("api-1-origins", query_params={"origin_from": 1}) | |||||
rv = api_client.get(url) | |||||
assert rv.status_code == 400, rv.data | |||||
assert rv["Content-Type"] == "application/json" | |||||
assert rv.data == { | |||||
"exception": "BadInputExc", | |||||
"reason": 'Please rename "origin_from" to "page_token"', | |||||
} | |||||
def test_api_origins(api_client, archive_data): | def test_api_origins(api_client, archive_data): | ||||
origins = list(archive_data.origin_get_range(0, 10000)) | page_result = archive_data.origin_list(limit=10000) | ||||
origin_urls = {origin["url"] for origin in origins} | origins = page_result.results | ||||
origin_urls = {origin.url for origin in origins} | |||||
# Get only one | # Get only one | ||||
url = reverse("api-1-origins", query_params={"origin_count": 1}) | url = reverse("api-1-origins", query_params={"origin_count": 1}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv["Content-Type"] == "application/json" | assert rv["Content-Type"] == "application/json" | ||||
assert len(rv.data) == 1 | assert len(rv.data) == 1 | ||||
assert {origin["url"] for origin in rv.data} <= origin_urls | assert {origin["url"] for origin in rv.data} <= origin_urls | ||||
# Get all | # Get all | ||||
url = reverse("api-1-origins", query_params={"origin_count": len(origins)}) | url = reverse("api-1-origins", query_params={"origin_count": len(origins)}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv["Content-Type"] == "application/json" | assert rv["Content-Type"] == "application/json" | ||||
assert len(rv.data) == len(origins) | assert len(rv.data) == len(origins) | ||||
assert {origin["url"] for origin in rv.data} == origin_urls | assert {origin["url"] for origin in rv.data} == origin_urls | ||||
# Get "all + 10" | # Get "all + 10" | ||||
url = reverse("api-1-origins", query_params={"origin_count": len(origins) + 10}) | url = reverse("api-1-origins", query_params={"origin_count": len(origins) + 10}) | ||||
rv = api_client.get(url) | rv = api_client.get(url) | ||||
assert rv.status_code == 200, rv.data | assert rv.status_code == 200, rv.data | ||||
assert rv["Content-Type"] == "application/json" | assert rv["Content-Type"] == "application/json" | ||||
assert len(rv.data) == len(origins) | assert len(rv.data) == len(origins) | ||||
assert {origin["url"] for origin in rv.data} == origin_urls | assert {origin["url"] for origin in rv.data} == origin_urls | ||||
@pytest.mark.parametrize("origin_count", [1, 2, 10, 100]) | @pytest.mark.parametrize("origin_count", [1, 2, 10, 100]) | ||||
def test_api_origins_scroll(api_client, archive_data, origin_count): | def test_api_origins_scroll(api_client, archive_data, origin_count): | ||||
origins = list(archive_data.origin_get_range(0, 10000)) | page_result = archive_data.origin_list(limit=10000) | ||||
origin_urls = {origin["url"] for origin in origins} | origins = page_result.results | ||||
origin_urls = {origin.url for origin in origins} | |||||
url = reverse("api-1-origins", query_params={"origin_count": origin_count}) | url = reverse("api-1-origins", query_params={"origin_count": origin_count}) | ||||
results = _scroll_results(api_client, url) | results = _scroll_results(api_client, url) | ||||
assert len(results) == len(origins) | assert len(results) == len(origins) | ||||
assert {origin["url"] for origin in results} == origin_urls | assert {origin["url"] for origin in results} == origin_urls | ||||
▲ Show 20 Lines • Show All 330 Lines • Show Last 20 Lines |