diff --git a/swh/storage/pytest_plugin.py b/swh/storage/pytest_plugin.py --- a/swh/storage/pytest_plugin.py +++ b/swh/storage/pytest_plugin.py @@ -222,7 +222,7 @@ "revision": [data.revision, data.revision2, data.revision3, data.revision4], "release": [data.release, data.release2, data.release3], "snapshot": [data.snapshot, data.empty_snapshot, data.complete_snapshot], - "origin": [data.origin, data.origin2], + "origin": data.origins, "origin_visit": [data.origin_visit, data.origin_visit2, data.origin_visit3], "fetcher": [data.metadata_fetcher, data.metadata_fetcher2], "authority": [data.metadata_authority, data.metadata_authority2], diff --git a/swh/storage/tests/algos/test_origin.py b/swh/storage/tests/algos/test_origin.py --- a/swh/storage/tests/algos/test_origin.py +++ b/swh/storage/tests/algos/test_origin.py @@ -7,7 +7,7 @@ from unittest.mock import patch -from swh.model.model import Origin, OriginVisit, OriginVisitStatus, Snapshot +from swh.model.model import Origin, OriginVisit, OriginVisitStatus from swh.storage.algos.origin import iter_origins, origin_get_latest_visit_status from swh.storage.utils import now @@ -115,12 +115,12 @@ assert actual_origin_visit is None -def init_storage_with_origin_visits(swh_storage): +def init_storage_with_origin_visits(swh_storage, sample_data_model): """Initialize storage with origin/origin-visit/origin-visit-status """ - origin1 = Origin.from_dict(data.origin) - origin2 = Origin.from_dict(data.origin2) + snapshot = sample_data_model["snapshot"][2] + origin1, origin2 = sample_data_model["origin"][:2] swh_storage.origin_add([origin1, origin2]) ov1, ov2 = swh_storage.origin_visit_add( @@ -134,7 +134,6 @@ ] ) - snapshot = Snapshot.from_dict(data.complete_snapshot) swh_storage.snapshot_add([snapshot]) date_now = now() @@ -184,11 +183,11 @@ } -def test_origin_get_latest_visit_status_filter_type(swh_storage): +def test_origin_get_latest_visit_status_filter_type(swh_storage, sample_data_model): """Filtering origin visit per types should yield consistent results """ - objects = init_storage_with_origin_visits(swh_storage) + objects = init_storage_with_origin_visits(swh_storage, sample_data_model) origin1, origin2 = objects["origin"] ov1, ov2 = objects["origin_visit"] ovs11, ovs12, _, ovs22 = objects["origin_visit_status"] @@ -228,8 +227,8 @@ assert actual_ovs22 == ovs22 -def test_origin_get_latest_visit_status_filter_status(swh_storage): - objects = init_storage_with_origin_visits(swh_storage) +def test_origin_get_latest_visit_status_filter_status(swh_storage, sample_data_model): + objects = init_storage_with_origin_visits(swh_storage, sample_data_model) origin1, origin2 = objects["origin"] ov1, ov2 = objects["origin_visit"] ovs11, ovs12, _, ovs22 = objects["origin_visit_status"] @@ -277,8 +276,8 @@ assert actual_ovs22 == ovs22 -def test_origin_get_latest_visit_status_filter_snapshot(swh_storage): - objects = init_storage_with_origin_visits(swh_storage) +def test_origin_get_latest_visit_status_filter_snapshot(swh_storage, sample_data_model): + objects = init_storage_with_origin_visits(swh_storage, sample_data_model) origin1, origin2 = objects["origin"] _, ov2 = objects["origin_visit"] _, _, _, ovs22 = objects["origin_visit_status"] diff --git a/swh/storage/tests/storage_data.py b/swh/storage/tests/storage_data.py --- a/swh/storage/tests/storage_data.py +++ b/swh/storage/tests/storage_data.py @@ -18,6 +18,7 @@ MetadataAuthorityType, MetadataFetcher, MetadataTargetType, + Origin, Person, RawExtrinsicMetadata, Revision, @@ -332,16 +333,16 @@ synthetic=False, ) -origin = { - "url": "file:///dev/null", -} - -origin2 = { - "url": "file:///dev/zero", -} - -origins = (origin, origin2) +origins = [ + Origin(url="https://github.com/user1/repo1"), + Origin(url="https://github.com/user2/repo1"), + Origin(url="https://github.com/user3/repo1"), + Origin(url="https://gitlab.com/user1/repo1"), + Origin(url="https://gitlab.com/user2/repo1"), + Origin(url="https://forge.softwareheritage.org/source/repo1"), +] +origin, origin2 = origins[:2] metadata_authority = MetadataAuthority( type=MetadataAuthorityType.DEPOSIT_CLIENT, @@ -369,21 +370,21 @@ type_visit3 = "deb" origin_visit = { - "origin": origin["url"], + "origin": origin.url, "visit": 1, "date": date_visit1, "type": type_visit1, } origin_visit2 = { - "origin": origin["url"], + "origin": origin.url, "visit": 2, "date": date_visit2, "type": type_visit1, } origin_visit3 = { - "origin": origin2["url"], + "origin": origin2.url, "visit": 1, "date": date_visit1, "type": type_visit2, @@ -503,7 +504,7 @@ content_metadata = RawExtrinsicMetadata( type=MetadataTargetType.CONTENT, id=parse_swhid(f"swh:1:cnt:{hash_to_hex(content.sha1_git)}"), - origin=origin["url"], + origin=origin.url, discovery_date=datetime.datetime( 2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc ), @@ -515,7 +516,7 @@ content_metadata2 = RawExtrinsicMetadata( type=MetadataTargetType.CONTENT, id=parse_swhid(f"swh:1:cnt:{hash_to_hex(content.sha1_git)}"), - origin=origin2["url"], + origin=origin2.url, discovery_date=datetime.datetime( 2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc ), @@ -534,7 +535,7 @@ fetcher=attr.evolve(metadata_fetcher2, metadata=None), format="yaml", metadata=b"foo: bar", - origin=origin["url"], + origin=origin.url, visit=42, snapshot=parse_swhid(f"swh:1:snp:{hash_to_hex(snapshot['id'])}"), release=parse_swhid(f"swh:1:rel:{hash_to_hex(release['id'])}"), @@ -545,7 +546,7 @@ origin_metadata = RawExtrinsicMetadata( type=MetadataTargetType.ORIGIN, - id=origin["url"], + id=origin.url, discovery_date=datetime.datetime( 2015, 1, 1, 21, 0, 0, tzinfo=datetime.timezone.utc ), @@ -556,7 +557,7 @@ ) origin_metadata2 = RawExtrinsicMetadata( type=MetadataTargetType.ORIGIN, - id=origin["url"], + id=origin.url, discovery_date=datetime.datetime( 2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc ), @@ -567,7 +568,7 @@ ) origin_metadata3 = RawExtrinsicMetadata( type=MetadataTargetType.ORIGIN, - id=origin["url"], + id=origin.url, discovery_date=datetime.datetime( 2017, 1, 1, 22, 0, 0, tzinfo=datetime.timezone.utc ), diff --git a/swh/storage/tests/test_pytest_plugin.py b/swh/storage/tests/test_pytest_plugin.py --- a/swh/storage/tests/test_pytest_plugin.py +++ b/swh/storage/tests/test_pytest_plugin.py @@ -34,6 +34,7 @@ "skipped_content", "directory", "revision", + "origin", "fetcher", "authority", "origin_metadata", diff --git a/swh/storage/tests/test_storage.py b/swh/storage/tests/test_storage.py --- a/swh/storage/tests/test_storage.py +++ b/swh/storage/tests/test_storage.py @@ -3803,17 +3803,8 @@ expected_origins = [origin.url for origin in swh_origins] assert sorted(returned_origins) == sorted(expected_origins) - ORIGINS = [ - Origin(url="https://github.com/user1/repo1"), - Origin(url="https://github.com/user2/repo1"), - Origin(url="https://github.com/user3/repo1"), - Origin(url="https://gitlab.com/user1/repo1"), - Origin(url="https://gitlab.com/user2/repo1"), - Origin(url="https://forge.softwareheritage.org/source/repo1"), - ] - - def test_origin_count(self, swh_storage): - swh_storage.origin_add(self.ORIGINS) + def test_origin_count(self, swh_storage, sample_data_model): + swh_storage.origin_add(sample_data_model["origin"]) assert swh_storage.origin_count("github") == 3 assert swh_storage.origin_count("gitlab") == 2 @@ -3822,8 +3813,8 @@ assert swh_storage.origin_count(".*user1.*", regexp=True) == 2 assert swh_storage.origin_count(".*user1.*", regexp=False) == 0 - def test_origin_count_with_visit_no_visits(self, swh_storage): - swh_storage.origin_add(self.ORIGINS) + def test_origin_count_with_visit_no_visits(self, swh_storage, sample_data_model): + swh_storage.origin_add(sample_data_model["origin"]) # none of them have visits, so with_visit=True => 0 assert swh_storage.origin_count("github", with_visit=True) == 0 @@ -3833,8 +3824,10 @@ assert swh_storage.origin_count(".*user1.*", regexp=True, with_visit=True) == 0 assert swh_storage.origin_count(".*user1.*", regexp=False, with_visit=True) == 0 - def test_origin_count_with_visit_with_visits_no_snapshot(self, swh_storage): - swh_storage.origin_add(self.ORIGINS) + def test_origin_count_with_visit_with_visits_no_snapshot( + self, swh_storage, sample_data_model + ): + swh_storage.origin_add(sample_data_model["origin"]) origin_url = "https://github.com/user1/repo1" visit = OriginVisit(origin=origin_url, date=now(), type="git",) @@ -3861,7 +3854,7 @@ self, swh_storage, sample_data_model ): snapshot = sample_data_model["snapshot"][0] - swh_storage.origin_add(self.ORIGINS) + swh_storage.origin_add(sample_data_model["origin"]) swh_storage.snapshot_add([snapshot]) origin_url = "https://github.com/user1/repo1"