Changeset View
Changeset View
Standalone View
Standalone View
swh/model/tests/test_model.py
Show First 20 Lines • Show All 801 Lines • ▼ Show 20 Lines | def test_metadata_valid(): | ||||
# Object with an SWHID | # Object with an SWHID | ||||
RawExtrinsicMetadata( | RawExtrinsicMetadata( | ||||
type=MetadataTargetType.CONTENT, | type=MetadataTargetType.CONTENT, | ||||
target=_content_swhid, | target=_content_swhid, | ||||
**_common_metadata_fields, | **_common_metadata_fields, | ||||
) | ) | ||||
@pytest.mark.filterwarnings("ignore: RawExtrinsicMetadata `id`") | def test_metadata_to_dict(): | ||||
@pytest.mark.parametrize("argument_name", ["id", "target"]) | |||||
def test_metadata_to_dict(argument_name): | |||||
"""Checks valid RawExtrinsicMetadata objects don't raise an error.""" | """Checks valid RawExtrinsicMetadata objects don't raise an error.""" | ||||
common_fields = { | common_fields = { | ||||
"authority": {"type": "forge", "url": "https://forge.softwareheritage.org"}, | "authority": {"type": "forge", "url": "https://forge.softwareheritage.org"}, | ||||
"fetcher": {"name": "test-fetcher", "version": "0.0.1",}, | "fetcher": {"name": "test-fetcher", "version": "0.0.1",}, | ||||
"discovery_date": _common_metadata_fields["discovery_date"], | "discovery_date": _common_metadata_fields["discovery_date"], | ||||
"format": "json", | "format": "json", | ||||
"metadata": b'{"foo": "bar"}', | "metadata": b'{"foo": "bar"}', | ||||
} | } | ||||
m = RawExtrinsicMetadata( | m = RawExtrinsicMetadata( | ||||
type=MetadataTargetType.ORIGIN, | type=MetadataTargetType.ORIGIN, target=_origin_url, **_common_metadata_fields, | ||||
**{argument_name: _origin_url, **_common_metadata_fields}, | |||||
) | ) | ||||
assert m.to_dict() == { | assert m.to_dict() == { | ||||
"type": "origin", | "type": "origin", | ||||
"target": _origin_url, | "target": _origin_url, | ||||
"id": _origin_url, | |||||
**common_fields, | **common_fields, | ||||
} | } | ||||
assert RawExtrinsicMetadata.from_dict(m.to_dict()) == m | assert RawExtrinsicMetadata.from_dict(m.to_dict()) == m | ||||
m = RawExtrinsicMetadata( | m = RawExtrinsicMetadata( | ||||
type=MetadataTargetType.CONTENT, | type=MetadataTargetType.CONTENT, | ||||
**{argument_name: _content_swhid, **_common_metadata_fields}, | target=_content_swhid, | ||||
**_common_metadata_fields, | |||||
) | ) | ||||
assert m.to_dict() == { | assert m.to_dict() == { | ||||
"type": "content", | "type": "content", | ||||
"target": "swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2", | "target": "swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2", | ||||
"id": "swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2", | |||||
**common_fields, | **common_fields, | ||||
} | } | ||||
assert RawExtrinsicMetadata.from_dict(m.to_dict()) == m | assert RawExtrinsicMetadata.from_dict(m.to_dict()) == m | ||||
def test_metadata_invalid_target(): | def test_metadata_invalid_target(): | ||||
"""Checks various invalid values for the 'target' field.""" | """Checks various invalid values for the 'target' field.""" | ||||
▲ Show 20 Lines • Show All 371 Lines • ▼ Show 20 Lines | ): | ||||
type=MetadataTargetType.CONTENT, | type=MetadataTargetType.CONTENT, | ||||
target=_content_swhid, | target=_content_swhid, | ||||
directory=SWHID( | directory=SWHID( | ||||
object_type="content", | object_type="content", | ||||
object_id="94a9ed024d3859793618152ea559a168bbcbb5e2", | object_id="94a9ed024d3859793618152ea559a168bbcbb5e2", | ||||
), | ), | ||||
**_common_metadata_fields, | **_common_metadata_fields, | ||||
) | ) | ||||
def test_metadata_id_attr(): | |||||
"""Checks the legacy id attribute on RawExtrinsicMetadata objects""" | |||||
# Simplest case | |||||
meta = RawExtrinsicMetadata( | |||||
type=MetadataTargetType.ORIGIN, target=_origin_url, **_common_metadata_fields | |||||
) | |||||
assert meta is not None | |||||
with pytest.deprecated_call() as messages: | |||||
assert meta.id == _origin_url | |||||
assert "RawExtrinsicMetadata `id`" in str(messages[0].message) |