"""Pytest conftest module.""" import pytest @pytest.fixture def context(): """Context fixture.""" return { 'product': { 'product_name': 'Cool product name', 'status': None, 'display_artist_name': 'Cool Artist', 'upc': '231232563123', 'product_id': None, 'is_main_release': True, 'release_type': 'release', 'release_reference': 'R0', 'grid': 'A0145345234523453452', 'catalog_number': 'G0134523452345245', 'genres': [ { 'genre': 'ELECTRONICA-00', 'subgenre': 'Alternative' } ], }, 'tracks': None, 'deals': None, 'bucket': 'ddex-bucket', 'key': 'key', 'message_id': '234524523', 'message_thread_id': 'G014523452345', 'party_id': 'PADPIDA2012041004F', 'update_indicator': 'OriginalMessage' } @pytest.fixture def purged_release_context(): """Purged release context fixture.""" return { 'product': { 'product_name': 'Cool product name', 'status': None, 'display_artist_name': 'Cool Artist', 'upc': '231232563123', 'product_id': None, 'is_main_release': True, 'release_type': 'release', 'release_reference': 'R0', 'grid': 'A0145345234523453452', 'catalog_number': 'G0134523452345245', 'genres': [ { 'genre': 'ELECTRONICA-00', 'subgenre': 'Alternative' } ], }, 'tracks': None, 'deals': None, 'bucket': 'ddex-bucket', 'key': 'key', 'message_id': '234524523', 'message_thread_id': 'G014523452345', 'party_id': 'PADPIDA2012041004F', 'update_indicator': 'OriginalMessage', 'is_purged_release': True } @pytest.fixture def get_product_by_upc_response(): """get_product_by_upc response.""" return { 'data': { 'productByUpc': { 'status': 'in_content', 'saleStartDate': '2021-02-19', 'vendorId': 123, 'subaccountId': 999, 'productId': 234324, 'tracks': [{ 'tuid': '32279606', 'isrc': 'QZCDB2000002' }], } } } @pytest.fixture def swb_query_response(): """SWB get_product_by_upc response.""" return { 'data': { 'getProductByUpc': { 'maintenanceOwner': { 'name': 'SME UK Limited', 'companyCode': '0202' }, 'labelAccount': { 'name': 'SME UK Limited', 'companyCode': '34588' }, 'subAccount': { 'name': 'Simco Limited, London', 'companyCode': '60194' }, 'switchboardExtensions': { 'governingDeal': { 'status': 'ACTIVE', 'dealId': '280', 'dealResponsibilities': [ { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '1', 'name': 'A&R Administration' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '2', 'name': 'Copyright Administration' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '3', 'name': 'Artist Royalty Administration' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '4', 'name': 'Digital Distribution' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] }, { 'scope': None, 'system': 'ORCHARD', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '5', 'name': 'Physical Distribution' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '6', 'name': 'Licensing' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '7', 'name': 'Radio Promotion' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '8', 'name': 'Marketing' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '9', 'name': 'Advertising' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '10', 'name': 'Digital Retail Sales' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '11', 'name': 'Physical Retail Sales' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '12', 'name': 'Performance Collections' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '13', 'name': 'Payments' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] }, { 'dealResponsibilityType': { 'dealResponsibilityTypeId': '14', 'name': 'Analytics' }, 'appliesTo': 'WORLDWIDE', 'assignments': [ { 'scope': None, 'system': 'SONY', 'territories': [] } ] } ] } } } } } @pytest.fixture def s3_ddex(): """S3 json file.""" return { 'product': { 'display_artist_name': 'Cool Artist', 'upc': '886448369561', 'is_main_release': True, 'release_type': 'Album', 'release_reference': 'R0', 'grid': 'A0145345234523453452', 'catalog_number': 'G0134523452345245', 'vendor_id': 36999, 'product_name': 'Test Name', 'p_line': 'Product Pline 2020', 'c_line': 'Product Cline 2020', 'proprietary_id': 'WRC3935212', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist', 'Producer'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], }, { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Cash Cash', 'sequence_number': 2, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Cash Cash', }], }, { 'apple_id': None, 'roles': ['FeaturedArtist', 'FeaturetoPrimary'], 'name': 'Nelly', 'sequence_number': 3, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Nelly', }], } ], 'genres': [ { 'genre': 'Blues', 'subgenre': 'Acoustic Blues' }, { 'genre': 'Rock', 'subgenre': 'Ambient' } ], 'localized_titles': [ { 'language_code': 'fr', 'title': 'French Title', 'version': 'Original' }, { 'language_code': 'ru', 'title': 'Russian Title', 'version': 'Remaster' } ], 'stores': [ { 'store_id': '1', 'link': '186235393', 'delivery_date': '2020-12-02', }, { 'store_id': '286', 'link': 'Spotify:album:368TKDyiyzFTwCyHJ0uWqc', 'delivery_date': '2020-12-03', }, { 'store_id': '173', 'carved_out': True, }, { 'store_id': '186', 'carved_out': True, }, ], 'major_label': 'Sony Music Entertainment', 'parent_repertoire_owner_code': 'A123', 'repertoire_owner_code': 'A123', }, 'tracks': [{ 'release_reference': 'R1', 'sequence_number': 1, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A1', 'display_artists': [ { 'roles': ['MainArtist', 'Producer'], 'name': 'Digital Farm Animals', 'spotify_uri': 'spotify:artist:5qfkUSH3ip5dD2eEPhjkT3', 'localized_names': [], 'sequence_number': 1, 'apple_id': '688986349' }, { 'roles': ['FeaturedArtist', 'FeaturetoPrimary'], 'name': 'Nelly', 'spotify_uri': None, 'localized_names': [], 'sequence_number': 2, 'apple_id': None } ], }], 'video': { 'release_reference': 'R1', 'assets': [ { 'filename': 'video1.mp4', 'filepath': 'resources/', 'bucket': 'ddex-bucket', 'key': 'folder/subfolder/resources/video1.mp4' }, { 'filename': 'video2.mp4', 'filepath': 'resources/', 'bucket': 'ddex-bucket', 'key': 'folder/subfolder/resources/video2.mp4' }, ], 'tuid': 45678, 'isrc': 'USSM12001699', 'release_type': 'VideoTrackRelease', 'workflow_id': 1234, 'video_name': 'Before Your Love', 'video_version': 'VIDEO', 'explicit': 'E', 'p_line': {'line': 'SG Productions', 'year': 2018}, 'c_line': {'line': 'SG Productions', 'year': 2018}, 'title_language': 'ENG', 'product_code': 'G010000025264A', 'imprint': '19 Recordings', }, 'deals': None, 'bucket': 'ddex-bucket', 'key': 'key', 'message_id': '234524523', 'message_thread_id': 'G014523452345', 'party_id': 'PADPIDA2012041004F', 'update_indicator': 'OriginalMessage', 'project': { 'project_code': 'FAKE project_code', 'name': 'FAKE name', 'description': 'FAKE description', 'artist': None } }