Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/tests/migrate_extrinsic_metadata/test_debian.py
Show All 9 Lines | |||||
import datetime | import datetime | ||||
import json | import json | ||||
from unittest.mock import Mock, call | from unittest.mock import Mock, call | ||||
from unittest.mock import patch as _patch | from unittest.mock import patch as _patch | ||||
import attr | import attr | ||||
import pytest | import pytest | ||||
from swh.model.identifiers import parse_swhid | |||||
from swh.model.model import ( | from swh.model.model import ( | ||||
MetadataAuthority, | MetadataAuthority, | ||||
MetadataAuthorityType, | MetadataAuthorityType, | ||||
MetadataFetcher, | MetadataFetcher, | ||||
MetadataTargetType, | |||||
Origin, | Origin, | ||||
OriginVisit, | OriginVisit, | ||||
OriginVisitStatus, | OriginVisitStatus, | ||||
Person, | Person, | ||||
RawExtrinsicMetadata, | RawExtrinsicMetadata, | ||||
Revision, | Revision, | ||||
RevisionType, | RevisionType, | ||||
Snapshot, | Snapshot, | ||||
SnapshotBranch, | SnapshotBranch, | ||||
TargetType, | TargetType, | ||||
Timestamp, | Timestamp, | ||||
TimestampWithTimezone, | TimestampWithTimezone, | ||||
) | ) | ||||
from swh.model.swhid import SWHID, SWHIDObjectType, parse_swhid | |||||
from swh.storage import get_storage | from swh.storage import get_storage | ||||
from swh.storage.interface import ListOrder, PagedResult | from swh.storage.interface import ListOrder, PagedResult | ||||
from swh.storage.migrate_extrinsic_metadata import debian_origins_from_row, handle_row | from swh.storage.migrate_extrinsic_metadata import debian_origins_from_row, handle_row | ||||
FETCHER = MetadataFetcher( | FETCHER = MetadataFetcher( | ||||
name="migrate-extrinsic-metadata-from-revisions", version="0.0.1", | name="migrate-extrinsic-metadata-from-revisions", version="0.0.1", | ||||
) | ) | ||||
SWH_AUTHORITY = MetadataAuthority( | SWH_AUTHORITY = MetadataAuthority( | ||||
▲ Show 20 Lines • Show All 375 Lines • ▼ Show 20 Lines | row = { | ||||
}, | }, | ||||
"tool": "dsc", | "tool": "dsc", | ||||
}, | }, | ||||
"original_artifact": source_original_artifacts, | "original_artifact": source_original_artifacts, | ||||
}, | }, | ||||
} | } | ||||
origin_url = "deb://Debian/packages/kalgebra" | origin_url = "deb://Debian/packages/kalgebra" | ||||
origin_swhid = SWHID( | |||||
object_type=SWHIDObjectType.ORIGIN, object_id=origin_url.encode() | |||||
) | |||||
storage = Mock() | storage = Mock() | ||||
deposit_cur = None | deposit_cur = None | ||||
with patch("debian_origins_from_row", return_value=[origin_url]): | with patch("debian_origins_from_row", return_value=[origin_url]): | ||||
handle_row(copy.deepcopy(row), storage, deposit_cur, dry_run=False) | handle_row(copy.deepcopy(row), storage, deposit_cur, dry_run=False) | ||||
assert storage.method_calls == [ | assert storage.method_calls == [ | ||||
call.raw_extrinsic_metadata_add( | call.raw_extrinsic_metadata_add( | ||||
[ | [ | ||||
RawExtrinsicMetadata( | RawExtrinsicMetadata( | ||||
type=MetadataTargetType.DIRECTORY, | |||||
target=DIRECTORY_SWHID, | target=DIRECTORY_SWHID, | ||||
discovery_date=datetime.datetime( | discovery_date=datetime.datetime( | ||||
2020, 1, 26, 22, 3, 24, tzinfo=datetime.timezone.utc, | 2020, 1, 26, 22, 3, 24, tzinfo=datetime.timezone.utc, | ||||
), | ), | ||||
authority=SWH_AUTHORITY, | authority=SWH_AUTHORITY, | ||||
fetcher=FETCHER, | fetcher=FETCHER, | ||||
format="original-artifacts-json", | format="original-artifacts-json", | ||||
metadata=json.dumps(dest_original_artifacts).encode(), | metadata=json.dumps(dest_original_artifacts).encode(), | ||||
origin=origin_url, | origin=origin_swhid, | ||||
revision=parse_swhid( | revision=parse_swhid( | ||||
"swh:1:rev:0000036c311ef33a281b05688f6eadcfc0943aee" | "swh:1:rev:0000036c311ef33a281b05688f6eadcfc0943aee" | ||||
), | ), | ||||
), | ), | ||||
] | ] | ||||
), | ), | ||||
] | ] | ||||
▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | row = { | ||||
}, | }, | ||||
"original_artifact": source_original_artifacts, | "original_artifact": source_original_artifacts, | ||||
}, | }, | ||||
} | } | ||||
storage = Mock() | storage = Mock() | ||||
origin_url = "http://snapshot.debian.org/package/pymongo" | origin_url = "http://snapshot.debian.org/package/pymongo" | ||||
origin_swhid = SWHID( | |||||
object_type=SWHIDObjectType.ORIGIN, object_id=origin_url.encode() | |||||
) | |||||
deposit_cur = None | deposit_cur = None | ||||
with patch("debian_origins_from_row", return_value=[origin_url]): | with patch("debian_origins_from_row", return_value=[origin_url]): | ||||
handle_row(copy.deepcopy(row), storage, deposit_cur, dry_run=False) | handle_row(copy.deepcopy(row), storage, deposit_cur, dry_run=False) | ||||
assert storage.method_calls == [ | assert storage.method_calls == [ | ||||
call.raw_extrinsic_metadata_add( | call.raw_extrinsic_metadata_add( | ||||
[ | [ | ||||
RawExtrinsicMetadata( | RawExtrinsicMetadata( | ||||
type=MetadataTargetType.DIRECTORY, | |||||
target=DIRECTORY_SWHID, | target=DIRECTORY_SWHID, | ||||
discovery_date=datetime.datetime( | discovery_date=datetime.datetime( | ||||
2011, 3, 31, 20, 17, 41, tzinfo=datetime.timezone.utc | 2011, 3, 31, 20, 17, 41, tzinfo=datetime.timezone.utc | ||||
), | ), | ||||
authority=SWH_AUTHORITY, | authority=SWH_AUTHORITY, | ||||
fetcher=FETCHER, | fetcher=FETCHER, | ||||
format="original-artifacts-json", | format="original-artifacts-json", | ||||
metadata=json.dumps(dest_original_artifacts).encode(), | metadata=json.dumps(dest_original_artifacts).encode(), | ||||
origin=origin_url, | origin=origin_swhid, | ||||
revision=parse_swhid( | revision=parse_swhid( | ||||
"swh:1:rev:000001c28c8fca01b904de92a2640a866ce03cb7" | "swh:1:rev:000001c28c8fca01b904de92a2640a866ce03cb7" | ||||
), | ), | ||||
), | ), | ||||
] | ] | ||||
) | ) | ||||
] | ] |