def test_debian_origins_from_row__check_revisions():
"""Tests debian_origins_from_row errors when the revision at the head
of a branch is a DSC and has no parents
"""
storage = Mock()
origin_url = "deb://Debian/packages/kalgebra"
revision_row = {
"id": b"\x00\x00\x03l1\x1e\xf3:(\x1b\x05h\x8fn\xad\xcf\xc0\x94:\xee",
"metadata": {"original_artifact": [{"filename": "kalgebra_19.12.1-1.dsc",},]},
}
visit = OriginVisit(
origin=origin_url,
date=datetime.datetime.now(tz=datetime.timezone.utc),
type="deb",
visit=280,
)
status = OriginVisitStatus(
origin=origin_url,
visit=280,
date=datetime.datetime.now(tz=datetime.timezone.utc),
status="full",
snapshot=b"42" * 10,
metadata=None,
)
snapshot = Snapshot(
id=b"42" * 10,
branches={
b"foo": SnapshotBranch(target_type=TargetType.REVISION, target=b"21" * 10)
},
)
revision = Revision(
id=b"\x00\x00\x03l1\x1e\xf3:(\x1b\x05h\x8fn\xad\xcf\xc0\x94:\xee",
message=b"foo",
author=Person.from_fullname(b"foo"),
committer=Person.from_fullname(b"foo"),
date=TimestampWithTimezone(
timestamp=Timestamp(seconds=1580076204, microseconds=0),
offset=60,
negative_utc=False,
),
committer_date=TimestampWithTimezone(
timestamp=Timestamp(seconds=1580076204, microseconds=0),
offset=60,
negative_utc=False,
),
type=RevisionType.DSC,
directory=b"\xd5\x9a\x1f\x9c\x80\x9d\x8c}19P\xf6\xc8\xa2\x0f^%H\xcd\xdb",
synthetic=True,
metadata=None,
parents=(b"parent " * 2,),
extra_headers=(),
)
storage.revision_get.return_value = [revision]
with patch("iter_origin_visits", return_value=[visit]):
with patch("iter_origin_visit_statuses", return_value=[status]):
with patch("snapshot_get_all_branches", return_value=snapshot):
with pytest.raises(AssertionError, match="DSC revision with parents"):
> debian_origins_from_row(revision_row, storage)
.tox/py3/lib/python3.7/site-packages/swh/storage/tests/migrate_extrinsic_metadata/test_debian.py:315:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
row = {'id': b'\x00\x00\x03l1\x1e\xf3:(\x1b\x05h\x8fn\xad\xcf\xc0\x94:\xee', 'metadata': {'original_artifact': [{'filename': 'kalgebra_19.12.1-1.dsc'}]}}
storage = <Mock id='140634324014920'>
def debian_origins_from_row(row, storage):
"""Guesses a Debian origin from a row. May return an empty list if it
cannot reliably guess it, but all results are guaranteed to be correct."""
filenames = [entry["filename"] for entry in row["metadata"]["original_artifact"]]
package_names = {filename.split("_")[0] for filename in filenames}
assert len(package_names) == 1, package_names
> package_name = package_names[0]
E TypeError: 'set' object is not subscriptable
.tox/py3/lib/python3.7/site-packages/swh/storage/migrate_extrinsic_metadata.py:210: TypeError
TEST RESULT
TEST RESULT
- Run At
- Sep 11 2020, 11:55 AM