"""Pytest common fixtures.""" import pytest from src.common.models.graphql import LabelSoundRecording from src.common.models.graphql import Participant from src.common.models.graphql import Participation from src.common.models.graphql import Product from src.common.models.graphql import ProductMetadata from src.common.models.graphql import Track from src.common.models.metadata import InconsistencyReport from src.common.models.metadata import InconsistencyType from src.common.models.metadata import MissingRecord from src.common.models.metadata import ReleaseArtistTable from src.common.models.metadata import TrackArtistTable from src.common.models.metadata import TrackTable from src.common.models.metadata import TrackWriterTable @pytest.fixture def product_upc(): """Fixture for product id.""" return '123456789001' @pytest.fixture def product_id(): """Fixture for product id.""" return 1 @pytest.fixture def participant_name(): """Fixture for participant name.""" return 'The Beatles' @pytest.fixture def participant_uuid(): """Fixture for participant uuid.""" return '44d93c2a-1a56-4d1e-8e61-957e464ba2e0' @pytest.fixture def participant_normalized_name(): """Fixture for participant_normalized_name.""" return 'thebeatles' @pytest.fixture def participant_role(): """Fixture for participant role.""" return 'performer' @pytest.fixture def missing_participant_id(): """Fixture for missing participant id.""" return 7 @pytest.fixture def missing_participant_name(): """Fixture for missing_participant_name.""" return 'Missing Participant' @pytest.fixture def tuid_1(): """Fixture for tuid.""" return '1' @pytest.fixture def tuid_2(): """Fixture for tuid.""" return '2' @pytest.fixture def isrc_1(): """Fixture for isrc.""" return 'GBAYE0601499' @pytest.fixture def isrc_2(): """Fixture for isrc.""" return 'GBAYE0601500' @pytest.fixture def lsr_1_uuid(): """Fixture for lsr uuid.""" return '8feb9ceb-7f98-4a5f-ae01-801f5c5f929c' @pytest.fixture def product_metadata( product_id, product_upc, participant_uuid, participant_name, participant_role, tuid_1, tuid_2, isrc_1, isrc_2, lsr_1_uuid ): """Mock execute_query.""" return ProductMetadata( product=Product( productId=product_id, upc=product_upc, participations=[ Participation( participant=Participant( uuid=participant_uuid, name=participant_name ), participated_as=participant_role ) ], tracks=[ Track( tuid=tuid_1, isrc=isrc_1, participations=[ Participation( participant=Participant( uuid=participant_uuid, name=participant_name ), participated_as=participant_role ) ], labelSoundRecording=LabelSoundRecording( id=lsr_1_uuid, isrc=isrc_1 ) ), Track( tuid=tuid_2, isrc=isrc_2, participations=[ Participation( participant=Participant( uuid=participant_uuid, name=participant_name ), participated_as=participant_role ) ], labelSoundRecording=LabelSoundRecording( id=lsr_1_uuid, isrc=isrc_2 ) ) ] ) ) @pytest.fixture def inconsistent_release_artist_id(): """Fixture for inconsistent release artist id.""" return 1149749 @pytest.fixture def product_participation_inconsistency_report(inconsistent_release_artist_id): """Fixture for missing product participation.""" return InconsistencyReport( inconsistency_type=InconsistencyType.BAD_PRODUCT_PARTICIPATIONS, missing_data=[ MissingRecord( table_name=ReleaseArtistTable.name, primary_key_name=ReleaseArtistTable.primary_key_name, record_id=inconsistent_release_artist_id ), ] ) @pytest.fixture def inconsistent_track_artist_id(): """Fixture for inconsistent track artist id.""" return 1169749 @pytest.fixture def inconsistent_track_writer_id(): """Fixture for inconsistent track writer id.""" return 11611949 @pytest.fixture def track_participation_inconsistency_report( inconsistent_track_artist_id, inconsistent_track_writer_id): """Fixture for missing track participation.""" return InconsistencyReport( inconsistency_type=InconsistencyType.BAD_TRACK_PARTICIPATIONS, missing_data=[ MissingRecord( table_name=TrackArtistTable.name, primary_key_name=TrackArtistTable.primary_key_name, record_id=inconsistent_track_artist_id ), MissingRecord( table_name=TrackWriterTable.name, primary_key_name=TrackWriterTable.primary_key_name, record_id=inconsistent_track_writer_id ), ] ) @pytest.fixture def inconsistent_track_id(): """Fixture for inconsistent track id.""" return 11649 @pytest.fixture def label_sound_recording_inconsistency_report(inconsistent_track_id): """Fixture for missing product participation.""" return InconsistencyReport( inconsistency_type=InconsistencyType.BAD_LABEL_SOUND_RECORDINGS, missing_data=[ MissingRecord( table_name=TrackTable.name, primary_key_name=TrackTable.primary_key_name, record_id=inconsistent_track_id ), ] ) @pytest.fixture def inconsistency_reports( product_participation_inconsistency_report, track_participation_inconsistency_report, label_sound_recording_inconsistency_report): """Fixture for inconsistency report.""" return [ product_participation_inconsistency_report, track_participation_inconsistency_report, label_sound_recording_inconsistency_report, ] @pytest.fixture def track_participation_inconsistency_report_only(track_participation_inconsistency_report): """Fixture for inconsistency report for track participations only.""" return [ track_participation_inconsistency_report, ] @pytest.fixture def product_participation_inconsistency_report_only(product_participation_inconsistency_report): """Fixture for inconsistency report for product participations only.""" return [ product_participation_inconsistency_report, ]