diff --git a/requirements-swh.txt b/requirements-swh.txt --- a/requirements-swh.txt +++ b/requirements-swh.txt @@ -1,4 +1,4 @@ swh.core >= 0.0.75 swh.model >= 0.5.0 swh.scheduler >= 0.4.0 -swh.storage >= 0.10.1 +swh.storage >= 0.12.0 diff --git a/swh/loader/package/deposit/loader.py b/swh/loader/package/deposit/loader.py --- a/swh/loader/package/deposit/loader.py +++ b/swh/loader/package/deposit/loader.py @@ -8,7 +8,6 @@ import logging import requests from typing import Any, Dict, Iterator, List, Mapping, Optional, Sequence, Tuple, Union -import types import attr @@ -209,17 +208,22 @@ return r snapshot_id = hash_to_bytes(r["snapshot_id"]) - branches = self.storage.snapshot_get(snapshot_id)["branches"] + snapshot = self.storage.snapshot_get(snapshot_id) + if not snapshot: + return r + branches = snapshot["branches"] logger.debug("branches: %s", branches) if not branches: return r rev_id = branches[b"HEAD"]["target"] - revisions = self.storage.revision_get([rev_id]) - # FIXME: inconsistency between tests and production code - if isinstance(revisions, types.GeneratorType): - revisions = list(revisions) + revisions = list(self.storage.revision_get([rev_id])) + if not revisions: + return r + revision = revisions[0] + if not revision: + return r # Retrieve the revision identifier dir_id = revision["directory"] 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 @@ -99,6 +99,7 @@ revisions = storage.revision_get(revision_ids) for rev in revisions: + assert rev is not None metadata = rev["metadata"] raw = metadata["extrinsic"]["raw"] assert "url" in raw diff --git a/swh/loader/tests/__init__.py b/swh/loader/tests/__init__.py --- a/swh/loader/tests/__init__.py +++ b/swh/loader/tests/__init__.py @@ -180,6 +180,7 @@ ) # retrieve information from revision for rev in revisions: + assert rev is not None objects_by_target_type[TargetType.DIRECTORY].append(rev["directory"]) object_to_branch[rev["directory"]] = rev["id"]