"""Pytest conftest module.""" import json import os import pytest DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'data',) @pytest.fixture def test_multiple_releases_json(json_file='multiple_releases.json'): """Read multiple release JSON file.""" with open(os.path.join(DATA_DIR, json_file)) as fd: return json.loads(fd.read()) @pytest.fixture def test_single_release_json(json_file='single_release.json'): """Read multiple release JSON file.""" with open(os.path.join(DATA_DIR, json_file)) as fd: return json.loads(fd.read()) @pytest.fixture def test_event(): """Test event fixture for handler.""" return { 'key': 'key/location.xml', 'bucket': 'bucket-name' } @pytest.fixture def context(): """State machine input.""" return { 'product': { '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', 'product_name': 'Test Artist', 'vendor_id': 123, 'subaccount_id': 999, 'genres': [ { 'genre': 'Blues', 'subgenre': 'Acoustic Blues' }, { 'genre': 'R & B', 'subgenre': 'Alternative' }, ], }, 'tracks': [{ 'tuid': None, 'release_reference': 'R1', 'sequence_number': 1, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A1', }], 'project_id': '4498666', 'deals': None, 'bucket': 'ddex-bucket', 'key': 'key', 'message_id': '234524523', 'message_thread_id': 'G014523452345', 'update_indicator': 'OriginalMessage', 'ddex_provider': 'SME', } @pytest.fixture def s3_context(): """S3 context fixture.""" return { 'product': { 'vendor_id': 2343234, 'display_artist_name': 'Cool Artist', 'upc': '231232563123', 'is_main_release': True, 'release_type': 'release', 'release_reference': 'R0', 'grid': 'A0145345234523453452', 'catalog_number': 'G0134523452345245', 'product_name': 'Test Artist', 'product_version': 'Instrumental', 'p_line': '2020 Product Pline', 'c_line': '2020 Product Cline', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist', 'Producer'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [ { 'name': 'english name', 'language_code': 'en' }, { 'name': 'nombre español', 'language_code': 'es' } ] }, { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Cash Cash', 'sequence_number': 2, 'spotify_uri': None, 'localized_names': [ { 'name': 'english name', 'language_code': 'en' }, { 'name': 'nombre español', 'language_code': 'es' } ] }, { 'apple_id': None, 'roles': ['FeaturedArtist'], 'name': 'Nelly', 'sequence_number': 3, 'spotify_uri': None, } ], 'localized_titles': [ { 'language_code': 'EN', 'title': 'title', 'version': '', }, { 'language_code': 'ES', 'title': 'el título', 'version': '', }, { 'language_code': 'cmn-Hans', 'title': '标题', 'version': '', }, { 'language_code': 'cmn-Hant', 'title': '標題', 'version': '', }, ] }, 'tracks': [ { 'release_reference': 'R1', 'sequence_number': 1, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A1', 'p_line': '2020 track pline', 'localized_titles': [ { 'language_code': 'EN', 'title': 'title', 'version': '', }, { 'language_code': 'ES', 'title': 'el título', 'version': '', }, { 'language_code': 'cmn-Hans', 'title': '标题', 'version': '', }, { 'language_code': 'cmn-Hant', 'title': '標題', 'version': '', }, ], 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist', 'Producer'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [ { 'name': 'english name', 'language_code': 'en' }, { 'name': 'nombre español', 'language_code': 'es' } ] }, { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Cash Cash', 'sequence_number': 2, 'spotify_uri': None, 'localized_names': [ { 'name': 'english name', 'language_code': 'en' }, { 'name': 'nombre español', 'language_code': 'es' } ] }, ] }, { 'release_reference': 'R2', 'sequence_number': 2, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000002', 'track_name': 'This track 2', 'resource_reference': 'A2', 'p_line': '2020 track pline', 'localized_titles': [ { 'language_code': 'EN', 'title': 'title', 'version': '', }, { 'language_code': 'ES', 'title': 'el título', 'version': '', }, { 'language_code': 'cmn-Hans', 'title': '标题', 'version': '', }, { 'language_code': 'cmn-Hant', 'title': '標題', 'version': '', }, ], 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist', 'Producer'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [ { 'name': 'english name', 'language_code': 'en' }, { 'name': 'nombre español', 'language_code': 'es' } ] }, { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Cash Cash', 'sequence_number': 2, 'spotify_uri': None, 'localized_names': [ { 'name': 'english name', 'language_code': 'en' }, { 'name': 'nombre español', 'language_code': 'es' } ] }, ] }, ], '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, 'associated_track_tuid': 45677, 'isrc': 'USSM12001699', 'product_code': 'G010000025264A', 'release_type': 'VideoTrackRelease', 'workflow_id': 1234, 'video_name': 'Before Your Love', 'video_version': 'VIDEO', 'video_type': 'Official Music Video', 'explicit': 'E', 'p_line': {'line': 'SG Productions', 'year': 2018}, 'c_line': {'line': 'SG Productions', 'year': 2018}, 'title_language': 'ENG', 'content_language': 'ENG', 'product_code': 'G010000025264A', 'imprint': '19 Recordings', 'associated_track_isrc': 'TRAIM1800040', 'description': 'Some video description', 'parental_advisory': 'No', 'lyrics': 'Some lyrics', 'keywords': ['keyword1', 'keyword2'], 'genres': [{ 'genre': 'ELECTRONICA-00', 'subgenre': 'POP-00' }], 'display_artists': [ { 'name': 'Kelly Clarkson', 'sequence_number': 1, 'roles': ['Featuring', 'Invalid'] }, { 'name': 'Artist', 'sequence_number': 2, 'roles': ['Director', 'Videographer'] }, ], 'resource_contributors': [{ 'name': 'John', 'sequence_number': 1, 'roles': ['FilmEditor'] }], }, 'deals': [ { 'release_references': ['R1'], 'deal_terms': [ { 'start_date': None, 'start_date_time': '2020-03-27T00:00:00', 'territories': ['AE'], 'commercial_model_types': [ 'AdvertisementSupportedModel' ], 'usage_type': [ 'NonInteractiveStream', 'OnDemandStream', ], 'takedown': None, 'price_type': '1', } ], } ], 'bucket': 'ddex-bucket', 'key': 'key', 'message_id': '234524523', 'message_thread_id': 'G014523452345', 'update_indicator': 'OriginalMessage', 'party_id': 'PADPIDA2007040502I', 'project': { 'project_code': 'FAKE project_code', 'name': 'FAKE name', 'description': 'FAKE description', 'artist': { 'sequence_number': 1, 'name': 'Test', 'spotify_uri': None, 'apple_id': None } } }