Changeset View
Changeset View
Standalone View
Standalone View
swh/storage/pytest_plugin.py
Show All 14 Lines | |||||
from pytest_postgresql import factories | from pytest_postgresql import factories | ||||
from pytest_postgresql.janitor import DatabaseJanitor, psycopg2, Version | from pytest_postgresql.janitor import DatabaseJanitor, psycopg2, Version | ||||
from swh.core.utils import numfile_sortkey as sortkey | from swh.core.utils import numfile_sortkey as sortkey | ||||
from swh.model.model import ( | from swh.model.model import ( | ||||
BaseModel, | BaseModel, | ||||
Content, | Content, | ||||
Directory, | Directory, | ||||
MetadataAuthority, | |||||
MetadataFetcher, | |||||
Origin, | Origin, | ||||
OriginVisit, | OriginVisit, | ||||
Person, | Person, | ||||
RawExtrinsicMetadata, | |||||
Release, | Release, | ||||
Revision, | Revision, | ||||
SkippedContent, | SkippedContent, | ||||
Snapshot, | Snapshot, | ||||
) | ) | ||||
from swh.storage import get_storage | from swh.storage import get_storage | ||||
from swh.storage.tests.storage_data import data | from swh.storage.tests.storage_data import data | ||||
▲ Show 20 Lines • Show All 179 Lines • ▼ Show 20 Lines | return { | ||||
"skipped_content": [data.skipped_cont, data.skipped_cont2], | "skipped_content": [data.skipped_cont, data.skipped_cont2], | ||||
"person": [data.person], | "person": [data.person], | ||||
"directory": [data.dir2, data.dir], | "directory": [data.dir2, data.dir], | ||||
"revision": [data.revision, data.revision2, data.revision3], | "revision": [data.revision, data.revision2, data.revision3], | ||||
"release": [data.release, data.release2, data.release3], | "release": [data.release, data.release2, data.release3], | ||||
"snapshot": [data.snapshot, data.empty_snapshot, data.complete_snapshot], | "snapshot": [data.snapshot, data.empty_snapshot, data.complete_snapshot], | ||||
"origin": [data.origin, data.origin2], | "origin": [data.origin, data.origin2], | ||||
"origin_visit": [data.origin_visit, data.origin_visit2, data.origin_visit3], | "origin_visit": [data.origin_visit, data.origin_visit2, data.origin_visit3], | ||||
"fetcher": [data.metadata_fetcher], | "fetcher": [data.metadata_fetcher.to_dict()], | ||||
"authority": [data.metadata_authority], | "authority": [data.metadata_authority.to_dict()], | ||||
"origin_metadata": [data.origin_metadata, data.origin_metadata2], | "origin_metadata": [ | ||||
data.origin_metadata.to_dict(), | |||||
data.origin_metadata2.to_dict(), | |||||
], | |||||
} | } | ||||
# FIXME: Add the metadata keys when we can (right now, we cannot as the data model | # FIXME: Add the metadata keys when we can (right now, we cannot as the data model | ||||
# changed but not the endpoints yet) | # changed but not the endpoints yet) | ||||
OBJECT_FACTORY = { | OBJECT_FACTORY = { | ||||
"content": Content.from_dict, | "content": Content.from_dict, | ||||
"content_metadata": Content.from_dict, | "content_metadata": Content.from_dict, | ||||
"skipped_content": SkippedContent.from_dict, | "skipped_content": SkippedContent.from_dict, | ||||
"person": Person.from_dict, | "person": Person.from_dict, | ||||
"directory": Directory.from_dict, | "directory": Directory.from_dict, | ||||
"revision": Revision.from_dict, | "revision": Revision.from_dict, | ||||
"release": Release.from_dict, | "release": Release.from_dict, | ||||
"snapshot": Snapshot.from_dict, | "snapshot": Snapshot.from_dict, | ||||
"origin": Origin.from_dict, | "origin": Origin.from_dict, | ||||
"origin_visit": OriginVisit.from_dict, | "origin_visit": OriginVisit.from_dict, | ||||
"fetcher": MetadataFetcher.from_dict, | |||||
"authority": MetadataAuthority.from_dict, | |||||
"origin_metadata": RawExtrinsicMetadata.from_dict, | |||||
} | } | ||||
@pytest.fixture | @pytest.fixture | ||||
def sample_data_model(sample_data) -> Dict[str, Iterable[BaseModel]]: | def sample_data_model(sample_data) -> Dict[str, Iterable[BaseModel]]: | ||||
"""Pre-defined sample storage object model to manipulate | """Pre-defined sample storage object model to manipulate | ||||
Returns: | Returns: | ||||
Dict of data (keys: content, directory, revision, release, person, origin, ...) | Dict of data (keys: content, directory, revision, release, person, origin, ...) | ||||
values list of object data model with the corresponding types | values list of object data model with the corresponding types | ||||
""" | """ | ||||
return { | return { | ||||
object_type: [convert_fn(obj) for obj in sample_data[object_type]] | object_type: [convert_fn(obj) for obj in sample_data[object_type]] | ||||
for object_type, convert_fn in OBJECT_FACTORY.items() | for object_type, convert_fn in OBJECT_FACTORY.items() | ||||
} | } |