"""Conftest.""" import os from ddex_ingester_common.constants.xmltodict import DDEX_LIST_FIELDS import pytest import xmltodict DATA_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'data',) # noqa def parse_xml_to_dict(xml): """Parse given XML file using xmltodict.parse().""" with open(os.path.join(DATA_DIR, xml)) as fd: return xmltodict.parse(fd.read(), force_list=DDEX_LIST_FIELDS) @pytest.fixture def ddex_confidential_example(): """DDEX document deserialized into a dict.""" return parse_xml_to_dict('A10301A0005502486Y.xml') @pytest.fixture def event(): """Event fixture.""" return { 'version': '0', 'id': 'f53c3ec4-ab37-63cc-9fb0-782042249477', 'detail-type': 'Object Created', 'source': 'aws.s3', 'account': '437795906767', 'time': '2026-03-11T10:46:16Z', 'region': 'us-east-1', 'resources': [ 'arn:aws:s3:::qa-ddex-ingester' ], 'detail': { 'version': '0', 'bucket': { 'name': 'qa-ddex-ingester' }, 'object': { 'key': 'sme_ddex/PROD_SUPPORT_A10301A0004654730P_20210908173943692/A10301A0004654730P_1.xml', # noqa 'size': 569042, 'etag': '21d75cf73e6aa0eb9dcad543e7dc2604-1', 'version-id': 'wcbuanyo9uk8ym.HAZmUSaklMAPrl_ac', 'sequencer': '0069B147F830343CD7' }, 'request-id': '5CS1MSQ74EVRMG99', 'requester': '437795906767', 'source-ip-address': '10.100.52.224', 'reason': 'PutObject' } } @pytest.fixture def s3_preorder_tracks_ddex(): """S3 json file.""" return { 'product': { '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 Name', 'p_line': 'Product Pline 2020', 'c_line': 'Product Cline 2020', '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'], 'name': 'Nelly', 'sequence_number': 3, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Nelly', }], } ], 'genres': [ { 'genre': 'ELECTRONICA-00', 'subgenre': 'Alternative' }, { 'genre': 'Rock', 'subgenre': 'Ambient' } ], 'localized_titles': [ { 'language_code': 'fr', 'title': 'French Title', 'version': 'Original' }, { 'language_code': 'ru', 'title': 'Russian Title', 'version': 'Remaster' } ], }, 'tracks': [ { 'release_reference': 'R1', 'sequence_number': 1, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A1', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], } ] }, { 'release_reference': 'R2', 'sequence_number': 2, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A2', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], } ] }, { 'release_reference': 'R3', 'sequence_number': 3, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A3', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], } ] }, { 'release_reference': 'R4', 'sequence_number': 4, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A4', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], } ] }, { 'release_reference': 'R5', 'sequence_number': 5, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A5', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], } ] }, { 'release_reference': 'R6', 'sequence_number': 6, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A6', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], } ] }, { 'release_reference': 'R7', 'sequence_number': 7, 'release_type': 'TrackRelease', 'volume': 1, 'isrc': 'QZCDB2000001', 'track_name': 'This track', 'resource_reference': 'A7', 'display_artists': [ { 'apple_id': None, 'roles': ['MainArtist'], 'name': 'Digital Farm Animals', 'sequence_number': 1, 'spotify_uri': None, 'localized_names': [{ 'language_code': 'ru', 'name': 'Russian Farm Animals', }], } ] }, ], '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': [ { '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, } ], } ], '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 } }