diff --git a/swh/loader/package/debian/loader.py b/swh/loader/package/debian/loader.py --- a/swh/loader/package/debian/loader.py +++ b/swh/loader/package/debian/loader.py @@ -184,11 +184,11 @@ return None return (EXTID_TYPE, hash_to_bytes(sha256)) - def resolve_revision_from( + def resolve_revision_from_artifacts( self, known_artifacts: Dict, p_info: DebianPackageInfo, ) -> Optional[bytes]: try: - return super().resolve_revision_from(known_artifacts, p_info) + return super().resolve_revision_from_artifacts(known_artifacts, p_info) except DscCountError: # known_artifacts are corrupted, ignore them instead of crashing return None diff --git a/swh/loader/package/debian/tests/test_debian.py b/swh/loader/package/debian/tests/test_debian.py --- a/swh/loader/package/debian/tests/test_debian.py +++ b/swh/loader/package/debian/tests/test_debian.py @@ -413,7 +413,7 @@ check_snapshot(expected_snapshot, swh_storage) -def test_debian_resolve_revision_from_edge_cases(): +def test_debian_resolve_revision_from_artifacts_edge_cases(): """Solving revision with empty data will result in unknown revision """ @@ -424,11 +424,11 @@ } for package_artifacts in [empty_artifact, PACKAGE_FILES]: p_info = DebianPackageInfo.from_metadata(package_artifacts, url=URL) - actual_revision = loader.resolve_revision_from({}, p_info) + actual_revision = loader.resolve_revision_from_artifacts({}, p_info) assert actual_revision is None for known_artifacts in [{}, PACKAGE_FILES]: - actual_revision = loader.resolve_revision_from( + actual_revision = loader.resolve_revision_from_artifacts( known_artifacts, DebianPackageInfo.from_metadata(empty_artifact, url=URL) ) assert actual_revision is None @@ -441,12 +441,12 @@ # ... removed the unnecessary intermediary data } } - assert not loader.resolve_revision_from( + assert not loader.resolve_revision_from_artifacts( known_package_artifacts, DebianPackageInfo.from_metadata(PACKAGE_FILES, url=URL) ) -def test_debian_resolve_revision_from_edge_cases_hit_and_miss(): +def test_debian_resolve_revision_from_artifacts_edge_cases_hit_and_miss(): """Solving revision with inconsistent data will result in unknown revision """ @@ -463,12 +463,14 @@ } } - actual_revision = loader.resolve_revision_from(known_package_artifacts, p_info) + actual_revision = loader.resolve_revision_from_artifacts( + known_package_artifacts, p_info + ) assert actual_revision is None -def test_debian_resolve_revision_from(): +def test_debian_resolve_revision_from_artifacts(): """Solving revision with consistent data will solve the revision """ @@ -496,12 +498,14 @@ } } - actual_revision = loader.resolve_revision_from(known_package_artifacts, p_info) + actual_revision = loader.resolve_revision_from_artifacts( + known_package_artifacts, p_info + ) assert actual_revision == expected_revision_id -def test_debian_resolve_revision_from_corrupt_known_artifact(): +def test_debian_resolve_revision_from_artifacts_corrupt_known_artifact(): """To many or not enough .dsc files in the known_artifacts dict""" loader = DebianLoader(None, None, None, None) artifact_metadata = PACKAGE_FILES @@ -526,15 +530,19 @@ # Too many .dsc files["another.dsc"] = files["cicero_0.7.2-3.dsc"] - assert loader.resolve_revision_from(known_package_artifacts, p_info) is None + assert ( + loader.resolve_revision_from_artifacts(known_package_artifacts, p_info) is None + ) # Not enough .dsc del files["another.dsc"] del files["cicero_0.7.2-3.dsc"] - assert loader.resolve_revision_from(known_package_artifacts, p_info) is None + assert ( + loader.resolve_revision_from_artifacts(known_package_artifacts, p_info) is None + ) -def test_debian_resolve_revision_from_corrupt_new_artifact(): +def test_debian_resolve_revision_from_artifacts_corrupt_new_artifact(): loader = DebianLoader(None, None, None, None) artifact_metadata = PACKAGE_FILES @@ -545,10 +553,10 @@ # Too many .dsc files["another.dsc"] = files["cicero_0.7.2-3.dsc"] p_info = DebianPackageInfo.from_metadata(artifact_metadata, url=URL) - assert loader.resolve_revision_from(PACKAGE_FILES, p_info) is None + assert loader.resolve_revision_from_artifacts(PACKAGE_FILES, p_info) is None # Not enough .dsc del files["another.dsc"] del files["cicero_0.7.2-3.dsc"] p_info = DebianPackageInfo.from_metadata(artifact_metadata, url=URL) - assert loader.resolve_revision_from(PACKAGE_FILES, p_info) is None + assert loader.resolve_revision_from_artifacts(PACKAGE_FILES, p_info) is None diff --git a/swh/loader/package/loader.py b/swh/loader/package/loader.py --- a/swh/loader/package/loader.py +++ b/swh/loader/package/loader.py @@ -253,17 +253,17 @@ used to check if a new artifact is the same.""" return None - def resolve_revision_from( - self, known_artifacts: Dict, p_info: TPackageInfo, - ) -> Optional[bytes]: - """Resolve the revision from a snapshot and an artifact metadata dict. + def resolve_revision_from_artifacts( + self, known_artifacts: Dict[Sha1Git, Any], p_info: TPackageInfo, + ) -> Optional[Sha1Git]: + """Resolve the revision from known artifact metadata and a package info object. If the artifact has already been downloaded, this will return the existing revision targeting that uncompressed artifact directory. Otherwise, this returns None. Args: - snapshot: Snapshot + known_artifacts: dict from revision ids to revision metadata p_info: Package information Returns: @@ -489,7 +489,7 @@ } for (version, branch_name, p_info) in packages_info: logger.debug("package_info: %s", p_info) - revision_id = self.resolve_revision_from(known_artifacts, p_info) + revision_id = self.resolve_revision_from_artifacts(known_artifacts, p_info) if revision_id is None: try: res = self._load_revision(p_info, origin) diff --git a/swh/loader/package/nixguix/tests/test_nixguix.py b/swh/loader/package/nixguix/tests/test_nixguix.py --- a/swh/loader/package/nixguix/tests/test_nixguix.py +++ b/swh/loader/package/nixguix/tests/test_nixguix.py @@ -469,7 +469,7 @@ } == stats -def test_resolve_revision_from(swh_storage, requests_mock_datadir, datadir): +def test_resolve_revision_from_artifacts(swh_storage, requests_mock_datadir, datadir): loader = NixGuixLoader(swh_storage, sources_url) known_artifacts = { @@ -480,11 +480,11 @@ p_info = NixGuixPackageInfo.from_metadata( {"url": "url1", "integrity": "integrity1"} ) - assert loader.resolve_revision_from(known_artifacts, p_info) == "id1" + assert loader.resolve_revision_from_artifacts(known_artifacts, p_info) == "id1" p_info = NixGuixPackageInfo.from_metadata( {"url": "url3", "integrity": "integrity3"} ) - assert loader.resolve_revision_from(known_artifacts, p_info) == None # noqa + assert loader.resolve_revision_from_artifacts(known_artifacts, p_info) is None def test_evaluation_branch(swh_storage, requests_mock_datadir): diff --git a/swh/loader/package/tests/test_loader.py b/swh/loader/package/tests/test_loader.py --- a/swh/loader/package/tests/test_loader.py +++ b/swh/loader/package/tests/test_loader.py @@ -45,7 +45,7 @@ assert actual_load_status2 == {"status": "failed"} -def test_resolve_revision_from(): +def test_resolve_revision_from_artifacts(): loader = PackageLoader(None, None) loader.known_artifact_to_extid = MagicMock( wraps=lambda known_artifact: known_artifact["key"].encode() @@ -59,7 +59,7 @@ p_info = MagicMock() # No known artifact -> it would be useless to compute the extid - assert loader.resolve_revision_from({}, p_info) is None + assert loader.resolve_revision_from_artifacts({}, p_info) is None p_info.extid.assert_not_called() loader.known_artifact_to_extid.assert_not_called() @@ -67,7 +67,7 @@ # Some artifacts, but the PackageInfo does not support extids p_info.extid.return_value = None - assert loader.resolve_revision_from(known_artifacts, p_info) is None + assert loader.resolve_revision_from_artifacts(known_artifacts, p_info) is None p_info.extid.assert_called_once() loader.known_artifact_to_extid.assert_not_called() @@ -75,7 +75,7 @@ # Some artifacts, and the PackageInfo is not one of them (ie. cache miss) p_info.extid.return_value = b"extid-of-cccc" - assert loader.resolve_revision_from(known_artifacts, p_info) is None + assert loader.resolve_revision_from_artifacts(known_artifacts, p_info) is None p_info.extid.assert_called_once() loader.known_artifact_to_extid.assert_any_call({"key": "extid-of-aaaa"}) loader.known_artifact_to_extid.assert_any_call({"key": "extid-of-bbbb"}) @@ -85,7 +85,7 @@ # Some artifacts, and the PackageInfo is one of them (ie. cache hit) p_info.extid.return_value = b"extid-of-aaaa" - assert loader.resolve_revision_from(known_artifacts, p_info) == b"a" * 40 + assert loader.resolve_revision_from_artifacts(known_artifacts, p_info) == b"a" * 40 p_info.extid.assert_called_once() loader.known_artifact_to_extid.assert_called_once_with({"key": "extid-of-aaaa"})