Changeset View
Changeset View
Standalone View
Standalone View
swh/loader/metadata/tests/test_github.py
Show All 17 Lines | from swh.model.model import ( | ||||
MetadataFetcher, | MetadataFetcher, | ||||
Origin, | Origin, | ||||
RawExtrinsicMetadata, | RawExtrinsicMetadata, | ||||
) | ) | ||||
from .test_base import DummyLoader | from .test_base import DummyLoader | ||||
ORIGIN = Origin("https://github.com/octocat/Hello-World") | ORIGIN = Origin("https://github.com/octocat/Hello-World") | ||||
FORKED_ORIGIN = Origin("https://github.com/octocat/linguist") | |||||
DOUBLE_FORKED_ORIGIN = Origin("https://github.com/jmarlena/linguist") | |||||
METADATA_AUTHORITY = MetadataAuthority( | METADATA_AUTHORITY = MetadataAuthority( | ||||
type=MetadataAuthorityType.FORGE, url="https://github.com" | type=MetadataAuthorityType.FORGE, url="https://github.com" | ||||
) | ) | ||||
def expected_metadata(dt, datadir): | def expected_metadata(dt, datadir): | ||||
data_file_path = Path(datadir) / "https_api.github.com/repos_octocat_Hello-World" | data_file_path = Path(datadir) / "https_api.github.com/repos_octocat_Hello-World" | ||||
Show All 29 Lines | def test_github_metadata(datadir, requests_mock_datadir, mocker): | ||||
now = datetime.datetime.now(tz=datetime.timezone.utc) | now = datetime.datetime.now(tz=datetime.timezone.utc) | ||||
mocker.patch("swh.loader.metadata.base.now", return_value=now) | mocker.patch("swh.loader.metadata.base.now", return_value=now) | ||||
fetcher = GitHubMetadataFetcher( | fetcher = GitHubMetadataFetcher( | ||||
ORIGIN, credentials=None, lister_name="github", lister_instance_name="" | ORIGIN, credentials=None, lister_name="github", lister_instance_name="" | ||||
) | ) | ||||
assert fetcher.get_origin_metadata() == [expected_metadata(now, datadir)] | assert fetcher.get_origin_metadata() == [expected_metadata(now, datadir)] | ||||
assert fetcher.get_parent_origins() == [] | |||||
def test_github_metadata_fork(datadir, requests_mock_datadir, mocker): | |||||
now = datetime.datetime.now(tz=datetime.timezone.utc) | |||||
mocker.patch("swh.loader.metadata.base.now", return_value=now) | |||||
fetcher = GitHubMetadataFetcher( | |||||
FORKED_ORIGIN, credentials=None, lister_name="github", lister_instance_name="" | |||||
) | |||||
assert fetcher.get_parent_origins() == [ | |||||
Origin(url="https://github.com/github/linguist"), | |||||
] | |||||
def test_github_metadata_fork_of_fork(datadir, requests_mock_datadir, mocker): | |||||
now = datetime.datetime.now(tz=datetime.timezone.utc) | |||||
mocker.patch("swh.loader.metadata.base.now", return_value=now) | |||||
fetcher = GitHubMetadataFetcher( | |||||
DOUBLE_FORKED_ORIGIN, | |||||
credentials=None, | |||||
lister_name="github", | |||||
lister_instance_name="", | |||||
) | |||||
assert fetcher.get_parent_origins() == [ | |||||
Origin(url="https://github.com/octocat/linguist"), | |||||
Origin(url="https://github.com/github/linguist"), | |||||
] | |||||
def test_github_metadata_from_loader( | def test_github_metadata_from_loader( | ||||
swh_storage, mocker, datadir, requests_mock_datadir | swh_storage, mocker, datadir, requests_mock_datadir | ||||
): | ): | ||||
# Fail early if this package is not fully installed | # Fail early if this package is not fully installed | ||||
assert "github" in { | assert "github" in { | ||||
entry_point.name | entry_point.name | ||||
Show All 17 Lines |