Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/tests/test_loader.py
Show First 20 Lines • Show All 163 Lines • ▼ Show 20 Lines | def test_load_extids() -> None: | ||||
origin = "http://example.org" | origin = "http://example.org" | ||||
rev1_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"a" * 20) | rev1_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"a" * 20) | ||||
rev2_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"b" * 20) | rev2_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"b" * 20) | ||||
rev3_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"c" * 20) | rev3_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"c" * 20) | ||||
rev4_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"d" * 20) | rev4_swhid = CoreSWHID(object_type=ObjectType.REVISION, object_id=b"d" * 20) | ||||
dir_swhid = CoreSWHID(object_type=ObjectType.DIRECTORY, object_id=b"e" * 20) | dir_swhid = CoreSWHID(object_type=ObjectType.DIRECTORY, object_id=b"e" * 20) | ||||
loader = StubPackageLoader(storage, "http://example.org") | |||||
patch.object( | |||||
loader, | |||||
"_load_revision", | |||||
return_value=(rev4_swhid.object_id, dir_swhid.object_id), | |||||
autospec=True, | |||||
).start() | |||||
# Results of a previous load | # Results of a previous load | ||||
storage.extid_add( | storage.extid_add( | ||||
[ | [ | ||||
ExtID("extid-type1", b"extid-of-v1.0", rev1_swhid), | ExtID("extid-type1", b"extid-of-v1.0", rev1_swhid), | ||||
ExtID("extid-type2", b"extid-of-v2.0", rev2_swhid), | ExtID("extid-type2", b"extid-of-v2.0", rev2_swhid), | ||||
] | ] | ||||
) | ) | ||||
last_snapshot = Snapshot( | last_snapshot = Snapshot( | ||||
Show All 22 Lines | storage.origin_visit_status_add( | ||||
visit=1, | visit=1, | ||||
status="full", | status="full", | ||||
date=date, | date=date, | ||||
snapshot=last_snapshot.id, | snapshot=last_snapshot.id, | ||||
) | ) | ||||
] | ] | ||||
) | ) | ||||
loader = StubPackageLoader(storage, "http://example.org") | |||||
patch.object( | |||||
loader, | |||||
"_load_revision", | |||||
return_value=(rev4_swhid.object_id, dir_swhid.object_id), | |||||
autospec=True, | |||||
).start() | |||||
loader.load() | loader.load() | ||||
assert loader._load_revision.mock_calls == [ # type: ignore | assert loader._load_revision.mock_calls == [ # type: ignore | ||||
# v1.0: not loaded because there is already its (extid_type, extid, rev) | # v1.0: not loaded because there is already its (extid_type, extid, rev) | ||||
# in the storage. | # in the storage. | ||||
# v2.0: loaded, because there is already a similar extid, but different type | # v2.0: loaded, because there is already a similar extid, but different type | ||||
call(StubPackageInfo(origin, "example-v2.0.tar"), Origin(url=origin)), | call(StubPackageInfo(origin, "example-v2.0.tar"), Origin(url=origin)), | ||||
# v3.0: loaded despite having an (extid_type, extid) in storage, because | # v3.0: loaded despite having an (extid_type, extid) in storage, because | ||||
▲ Show 20 Lines • Show All 93 Lines • Show Last 20 Lines |