def test_debian_origins_from_row():
"""Tests debian_origins_from_row on a real example (with some parts
omitted, for conciseness)."""
origin_url = "deb://Debian/packages/kalgebra"
visit = OriginVisit(
origin=origin_url,
date=datetime.datetime(
2020, 1, 27, 19, 32, 3, 925498, tzinfo=datetime.timezone.utc,
),
type="deb",
visit=280,
)
def mock_origin_visit_get(origin, page_token, order):
if origin in (
"deb://Debian-Security/packages/kalgebra",
"http://snapshot.debian.org/package/kalgebra/",
):
return PagedResult(results=[], next_page_token=None)
elif origin == "deb://Debian/packages/kalgebra":
if page_token == None:
return PagedResult(
# ...
results=[visit,],
next_page_token="280",
)
elif page_token == "280":
return PagedResult(results=[], next_page_token=None)
else:
assert False, page_token
else:
assert False, origin
storage = Mock()
storage.origin_visit_get.side_effect = mock_origin_visit_get
storage.origin_visit_status_get.return_value = PagedResult(
results=[
OriginVisitStatus(
origin=origin_url,
visit=280,
date=datetime.datetime(
2020, 1, 27, 19, 32, 3, 925498, tzinfo=datetime.timezone.utc
),
status="full",
snapshot=b"\xafD\x15\x98){\xd4$\xdeI\x1f\xbe\x95lh`x\x14\xce\xc4",
metadata=None,
)
],
next_page_token=None,
)
snapshot = Snapshot(
id=b"\xafD\x15\x98){\xd4$\xdeI\x1f\xbe\x95lh`x\x14\xce\xc4",
branches={
# ...
b"releases/unstable/main/4:19.12.1-1": SnapshotBranch(
target=b"\x00\x00\x03l1\x1e\xf3:(\x1b\x05h\x8fn\xad\xcf\xc0\x94:\xee",
target_type=TargetType.REVISION,
),
},
)
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",
# ...
},
]
},
}
with patch("snapshot_get_all_branches", return_value=snapshot):
> assert debian_origins_from_row(revision_row, storage) == [origin_url]
.tox/py3/lib/python3.7/site-packages/swh/storage/tests/migrate_extrinsic_metadata/test_debian.py:136:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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='140634146586520'>
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