Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/package/deposit/tests/test_deposit.py
# Copyright (C) 2019-2021 The Software Heritage developers | # Copyright (C) 2019-2021 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import datetime | |||||
import json | import json | ||||
import re | import re | ||||
from typing import List | from typing import List | ||||
import pytest | import pytest | ||||
from swh.core.pytest_plugin import requests_mock_datadir_factory | from swh.core.pytest_plugin import requests_mock_datadir_factory | ||||
from swh.loader.package.deposit.loader import ApiClient, DepositLoader | from swh.loader.package.deposit.loader import ApiClient, DepositLoader | ||||
from swh.loader.package.loader import now | from swh.loader.package.loader import now | ||||
from swh.loader.tests import assert_last_visit_matches, check_snapshot, get_stats | from swh.loader.tests import assert_last_visit_matches, check_snapshot, get_stats | ||||
from swh.model.hashutil import hash_to_bytes, hash_to_hex | from swh.model.hashutil import hash_to_bytes, hash_to_hex | ||||
from swh.model.model import ( | from swh.model.model import ( | ||||
Origin, | Origin, | ||||
Person, | Person, | ||||
RawExtrinsicMetadata, | RawExtrinsicMetadata, | ||||
Release, | Release, | ||||
Snapshot, | Snapshot, | ||||
SnapshotBranch, | SnapshotBranch, | ||||
TargetType, | TargetType, | ||||
Timestamp, | |||||
TimestampWithTimezone, | TimestampWithTimezone, | ||||
) | ) | ||||
from swh.model.model import MetadataAuthority, MetadataAuthorityType, MetadataFetcher | from swh.model.model import MetadataAuthority, MetadataAuthorityType, MetadataFetcher | ||||
from swh.model.model import ObjectType as ModelObjectType | from swh.model.model import ObjectType as ModelObjectType | ||||
from swh.model.swhids import CoreSWHID, ExtendedObjectType, ExtendedSWHID, ObjectType | from swh.model.swhids import CoreSWHID, ExtendedObjectType, ExtendedSWHID, ObjectType | ||||
DEPOSIT_URL = "https://deposit.softwareheritage.org/1/private" | DEPOSIT_URL = "https://deposit.softwareheritage.org/1/private" | ||||
▲ Show 20 Lines • Show All 156 Lines • ▼ Show 20 Lines | expected_snapshot = Snapshot( | ||||
id=hash_to_bytes(expected_snapshot_id), | id=hash_to_bytes(expected_snapshot_id), | ||||
branches={ | branches={ | ||||
b"HEAD": SnapshotBranch(target=release_id, target_type=TargetType.RELEASE,), | b"HEAD": SnapshotBranch(target=release_id, target_type=TargetType.RELEASE,), | ||||
}, | }, | ||||
) | ) | ||||
check_snapshot(expected_snapshot, storage=loader.storage) | check_snapshot(expected_snapshot, storage=loader.storage) | ||||
release = loader.storage.release_get([release_id])[0] | release = loader.storage.release_get([release_id])[0] | ||||
date = TimestampWithTimezone( | date = TimestampWithTimezone.from_datetime( | ||||
timestamp=Timestamp(seconds=1507389428, microseconds=0), | datetime.datetime(2017, 10, 7, 15, 17, 8, tzinfo=datetime.timezone.utc) | ||||
offset=0, | |||||
negative_utc=False, | |||||
) | ) | ||||
person = Person( | person = Person( | ||||
fullname=b"Software Heritage", | fullname=b"Software Heritage", | ||||
name=b"Software Heritage", | name=b"Software Heritage", | ||||
email=b"robot@softwareheritage.org", | email=b"robot@softwareheritage.org", | ||||
) | ) | ||||
assert release == Release( | assert release == Release( | ||||
id=release_id, | id=release_id, | ||||
▲ Show 20 Lines • Show All 323 Lines • ▼ Show 20 Lines | expected_snapshot = Snapshot( | ||||
id=hash_to_bytes(expected_snapshot_id), | id=hash_to_bytes(expected_snapshot_id), | ||||
branches={ | branches={ | ||||
b"HEAD": SnapshotBranch(target=release_id, target_type=TargetType.RELEASE,), | b"HEAD": SnapshotBranch(target=release_id, target_type=TargetType.RELEASE,), | ||||
}, | }, | ||||
) | ) | ||||
check_snapshot(expected_snapshot, storage=loader.storage) | check_snapshot(expected_snapshot, storage=loader.storage) | ||||
release = loader.storage.release_get([release_id])[0] | release = loader.storage.release_get([release_id])[0] | ||||
date = TimestampWithTimezone( | date = TimestampWithTimezone.from_datetime( | ||||
timestamp=Timestamp(seconds=1507389428, microseconds=0), | datetime.datetime(2017, 10, 7, 15, 17, 8, tzinfo=datetime.timezone.utc) | ||||
offset=0, | |||||
negative_utc=False, | |||||
) | ) | ||||
person = Person( | person = Person( | ||||
fullname=b"Software Heritage", | fullname=b"Software Heritage", | ||||
name=b"Software Heritage", | name=b"Software Heritage", | ||||
email=b"robot@softwareheritage.org", | email=b"robot@softwareheritage.org", | ||||
) | ) | ||||
assert release == Release( | assert release == Release( | ||||
id=release_id, | id=release_id, | ||||
Show All 11 Lines |