Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/tests/conftest.py
Show All 10 Lines | |||||
import msgpack | import msgpack | ||||
import psycopg2.extensions | import psycopg2.extensions | ||||
import pymongo.database | import pymongo.database | ||||
import pytest | import pytest | ||||
from pytest_postgresql.factories import postgresql | from pytest_postgresql.factories import postgresql | ||||
from swh.journal.serializers import msgpack_ext_hook | from swh.journal.serializers import msgpack_ext_hook | ||||
from swh.provenance import get_provenance, get_provenance_storage | from swh.provenance import get_provenance, get_provenance_storage | ||||
from swh.provenance.api.client import RemoteProvenanceStorage | from swh.provenance.api.client import ProvenanceStorageRPCClient | ||||
import swh.provenance.api.server as server | import swh.provenance.api.server as server | ||||
from swh.provenance.archive import ArchiveInterface | from swh.provenance.archive import ArchiveInterface | ||||
from swh.provenance.interface import ProvenanceInterface, ProvenanceStorageInterface | from swh.provenance.interface import ProvenanceInterface, ProvenanceStorageInterface | ||||
from swh.provenance.storage.archive import ArchiveStorage | from swh.provenance.storage.archive import ArchiveStorage | ||||
from swh.storage.interface import StorageInterface | from swh.storage.interface import StorageInterface | ||||
from swh.storage.replay import process_replay_objects | from swh.storage.replay import process_replay_objects | ||||
Show All 17 Lines | ) -> Dict[str, str]: | ||||
) | ) | ||||
return postgresql.get_dsn_parameters() | return postgresql.get_dsn_parameters() | ||||
# the Flask app used as server in these tests | # the Flask app used as server in these tests | ||||
@pytest.fixture | @pytest.fixture | ||||
def app( | def app( | ||||
provenance_postgresqldb: Dict[str, str] | provenance_postgresqldb: Dict[str, str] | ||||
) -> Iterator[server.ProvenanceStorageServerApp]: | ) -> Iterator[server.ProvenanceStorageRPCServerApp]: | ||||
assert hasattr(server, "storage") | assert hasattr(server, "storage") | ||||
server.storage = get_provenance_storage( | server.storage = get_provenance_storage( | ||||
cls="postgresql", db=provenance_postgresqldb | cls="postgresql", db=provenance_postgresqldb | ||||
) | ) | ||||
yield server.app | yield server.app | ||||
# the RPCClient class used as client used in these tests | # the RPCClient class used as client used in these tests | ||||
@pytest.fixture | @pytest.fixture | ||||
def swh_rpc_client_class() -> type: | def swh_rpc_client_class() -> type: | ||||
return RemoteProvenanceStorage | return ProvenanceStorageRPCClient | ||||
@pytest.fixture(params=["mongodb", "postgresql", "remote"]) | @pytest.fixture(params=["mongodb", "postgresql", "rpcapi"]) | ||||
def provenance_storage( | def provenance_storage( | ||||
request: SubRequest, | request: SubRequest, | ||||
provenance_postgresqldb: Dict[str, str], | provenance_postgresqldb: Dict[str, str], | ||||
mongodb: pymongo.database.Database, | mongodb: pymongo.database.Database, | ||||
swh_rpc_client: RemoteProvenanceStorage, | swh_rpc_client: ProvenanceStorageRPCClient, | ||||
) -> ProvenanceStorageInterface: | ) -> ProvenanceStorageInterface: | ||||
"""Return a working and initialized ProvenanceStorageInterface object""" | """Return a working and initialized ProvenanceStorageInterface object""" | ||||
if request.param == "remote": | if request.param == "rpcapi": | ||||
assert isinstance(swh_rpc_client, ProvenanceStorageInterface) | assert isinstance(swh_rpc_client, ProvenanceStorageInterface) | ||||
return swh_rpc_client | return swh_rpc_client | ||||
elif request.param == "mongodb": | elif request.param == "mongodb": | ||||
from swh.provenance.mongo.backend import ProvenanceStorageMongoDb | from swh.provenance.mongo.backend import ProvenanceStorageMongoDb | ||||
return ProvenanceStorageMongoDb(mongodb) | return ProvenanceStorageMongoDb(mongodb) | ||||
▲ Show 20 Lines • Show All 69 Lines • Show Last 20 Lines |