From 8d3c00872d4f890db695dbfa2697883642691c0d Mon Sep 17 00:00:00 2001 From: Antoine Lambert <anlambert@softwareheritage.org> Date: Wed, 18 Aug 2021 11:50:33 +0200 Subject: [PATCH] tmp --- swh/web/api/views/metadata.py | 12 +++++++---- swh/web/tests/api/views/test_metadata.py | 26 +++++++++++------------ swh/web/tests/browse/views/test_origin.py | 2 -- swh/web/tests/common/test_identifiers.py | 9 ++++---- swh/web/tests/conftest.py | 8 +++---- swh/web/tests/strategies.py | 8 +++---- 6 files changed, 33 insertions(+), 32 deletions(-) diff --git a/swh/web/api/views/metadata.py b/swh/web/api/views/metadata.py index 10dc14bcc..91c98afb0 100644 --- a/swh/web/api/views/metadata.py +++ b/swh/web/api/views/metadata.py @@ -108,7 +108,7 @@ def api_raw_extrinsic_metadata_swhid(request, target): limit = min(limit, 10000) try: - target = identifiers.CoreSWHID.from_string(target).to_extended() + target = identifiers.ExtendedSWHID.from_string(target) except identifiers.ValidationError as e: raise BadInputExc(f"Invalid target SWHID: {e.args[0]}") from None @@ -145,14 +145,18 @@ def api_raw_extrinsic_metadata_swhid(request, target): "results": results, "headers": {}, } + if result_page.next_page_token is not None: response["headers"]["link-next"] = reverse( - "api-1-raw-extrinsic-metadata", + "api-1-raw-extrinsic-metadata-swhid", + url_args={"target": target}, query_params=dict( authority=authority_str, after=after_str, limit=limit_str, - page_token=base64.urlsafe_b64encode(result_page.next_page_token), + page_token=base64.urlsafe_b64encode( + result_page.next_page_token.encode() + ), ), request=request, ) @@ -226,7 +230,7 @@ def api_raw_extrinsic_metadata_swhid_authorities(request, target): target_str = target try: - target = identifiers.CoreSWHID.from_string(target_str).to_extended() + target = identifiers.ExtendedSWHID.from_string(target_str) except identifiers.ValidationError as e: raise BadInputExc(f"Invalid target SWHID: {e.args[0]}") from None diff --git a/swh/web/tests/api/views/test_metadata.py b/swh/web/tests/api/views/test_metadata.py index 2a1053bb4..bf3c9f9d2 100644 --- a/swh/web/tests/api/views/test_metadata.py +++ b/swh/web/tests/api/views/test_metadata.py @@ -154,17 +154,15 @@ def test_api_raw_extrinsic_metadata_list_authorities( ) rv = check_api_get_responses(api_client, url, status_code=200) - expected_results = [ - { - "type": authority.type.value, - "url": authority.url, - "metadata_list_url": "http://testserver" - + reverse( - "api-1-raw-extrinsic-metadata-swhid", - url_args={"target": str(metadata.target)}, - query_params={"authority": f"{authority.type.value} {authority.url}"}, - ), - } - ] - - assert rv.data == expected_results + expected_result = { + "type": authority.type.value, + "url": authority.url, + "metadata_list_url": "http://testserver" + + reverse( + "api-1-raw-extrinsic-metadata-swhid", + url_args={"target": str(metadata.target)}, + query_params={"authority": f"{authority.type.value} {authority.url}"}, + ), + } + + assert expected_result in rv.data diff --git a/swh/web/tests/browse/views/test_origin.py b/swh/web/tests/browse/views/test_origin.py index b59e36785..054e94237 100644 --- a/swh/web/tests/browse/views/test_origin.py +++ b/swh/web/tests/browse/views/test_origin.py @@ -643,7 +643,6 @@ def test_browse_origin_content_directory_empty_snapshot(client, mocker, origin): assert re.search("snapshot.*is empty", resp.content.decode("utf-8")) assert mock_get_origin_visit_snapshot.called assert mock_snapshot_archive.lookup_origin.called - assert mock_snapshot_archive.lookup_snapshot_sizes.called @given(origin()) @@ -696,7 +695,6 @@ def test_origin_empty_snapshot(client, mocker, origin): assert re.search("snapshot.*is empty", resp_content) assert not re.search("swh-tr-link", resp_content) assert mock_get_origin_visit_snapshot.called - assert mock_archive.lookup_snapshot_sizes.called @given(new_origin()) diff --git a/swh/web/tests/common/test_identifiers.py b/swh/web/tests/common/test_identifiers.py index 96858aff8..57f965fb0 100644 --- a/swh/web/tests/common/test_identifiers.py +++ b/swh/web/tests/common/test_identifiers.py @@ -610,10 +610,11 @@ def _check_resolved_swhid_browse_url( @given(directory()) -def test_resolve_swhid_with_escaped_chars(directory): - origin = "http://example.org/?project=abc;" - origin_swhid_escaped = quote(origin, safe="/?:@&") - origin_swhid_url_escaped = quote(origin, safe="/:@;") +def test_resolve_swhid_with_escaped_chars(archive_data, directory): + origin_url = "http://example.org/?project=abc;" + archive_data.origin_add([Origin(url=origin_url)]) + origin_swhid_escaped = quote(origin_url, safe="/?:@&") + origin_swhid_url_escaped = quote(origin_url, safe="/:@;") swhid = gen_swhid(DIRECTORY, directory, metadata={"origin": origin_swhid_escaped}) resolved_swhid = resolve_swhid(swhid) assert resolved_swhid["swhid_parsed"].origin == origin_swhid_escaped diff --git a/swh/web/tests/conftest.py b/swh/web/tests/conftest.py index 2eb385a90..b326fe4b5 100644 --- a/swh/web/tests/conftest.py +++ b/swh/web/tests/conftest.py @@ -56,7 +56,7 @@ settings.register_profile( settings.register_profile( "swh-web-fast", settings( - deadline=None, max_examples=1, suppress_health_check=suppress_health_check, + deadline=None, max_examples=5, suppress_health_check=suppress_health_check, ), ) @@ -138,7 +138,7 @@ def api_request_factory(): # Initialize tests data -@pytest.fixture(scope="session", autouse=True) +@pytest.fixture(scope="function", autouse=True) def tests_data(): data = get_tests_data(reset=True) # Update swh-web configuration to use the in-memory storages @@ -150,13 +150,13 @@ def tests_data(): # Fixture to manipulate data from a sample archive used in the tests -@pytest.fixture(scope="session") +@pytest.fixture(scope="function") def archive_data(tests_data): return _ArchiveData(tests_data) # Fixture to manipulate indexer data from a sample archive used in the tests -@pytest.fixture(scope="session") +@pytest.fixture(scope="function") def indexer_data(tests_data): return _IndexerData(tests_data) diff --git a/swh/web/tests/strategies.py b/swh/web/tests/strategies.py index c33932f38..b09bc4bf7 100644 --- a/swh/web/tests/strategies.py +++ b/swh/web/tests/strategies.py @@ -51,10 +51,10 @@ if repr(settings()) == repr(hypothesis_default_settings): def _filter_checksum(cs): - generated_checksums = get_tests_data()["generated_checksums"] - if not int.from_bytes(cs, byteorder="little") or cs in generated_checksums: - return False - generated_checksums.add(cs) + # generated_checksums = get_tests_data()["generated_checksums"] + # if not int.from_bytes(cs, byteorder="little") or cs in generated_checksums: + # return False + # generated_checksums.add(cs) return True -- GitLab