"""Pytest conftest module.""" import pytest from ddex_ingester_common.models.s3.asset import Asset from ddex_ingester_common.models.state_machine.product import Product from ddex_ingester_common.models.state_machine.track import Track @pytest.fixture() def context(): """Context object representing DDEX data.""" return { 'product': { 'upc': '886448369561', 'product_id': 2851194, 'status': 'in_content', 'display_artist_name': 'Cool Artist', 'is_main_release': True, 'release_reference': 'R0', 'artwork': { 'filename': 'A10301A0004280500R_T-1205814372821_Image.tif', 'filepath': 'resources/', }, 'release_type': 'Album', 'original_release_date': None, 'sale_start_date': None, 'grid': 'A0145345234523453452', 'catalog_number': 'G0134523452345245', 'product_name': 'Test Artist', 'not_for_distribution': 'N', 'genres': [ { 'genre': 'ELECTRONICA-00', 'subgenre': 'Alternative' } ], }, 'tracks': [ { 'release_reference': 'R1', 'asset': { 'filename': 'audio.flac', 'filepath': 'resources/', 'bucket': 'ddex-bucket', 'key': 'folder/subfolder/resources/audio.flac' }, 'volume': 1, 'tuid': 45678, 'sequence_number': 1, 'isrc': 'USSM12001699', 'release_type': 'TrackRelease', 'track_name': 'New Track', 'resource_reference': 'A1', } ], 'ddex_provider': 'SME', 'deals': None, 'key': 'folder/subfolder/', 'bucket': 'ddex-bucket', 'message_id': '12345', 'message_thread_id': '12345_TEST', 'party_id': 'PADPIDA2012041004F', 'update_indicator': 'OriginalMessage', 'error_correction': { 'release_correction_id': 287202, 'release_id': 2851194, 'items': [], } } @pytest.fixture() def lambda_input(context): """Typical input for handle_audio_asset.""" return { 'context': context, 'track': context['tracks'][0] } @pytest.fixture() def ddex_json(): """Context object representing DDEX data.""" return { 'product': { 'upc': '886448369561', 'display_artist_name': 'Cool Artist', 'is_main_release': True, 'release_reference': 'R0', 'artwork': { 'filename': 'A10301A0004280500R_T-1205814372821_Image.tif', 'filepath': 'resources/', }, 'release_type': 'Album', 'original_release_date': None, 'sale_start_date': None, 'grid': 'A0145345234523453452', 'catalog_number': 'G0134523452345245', 'product_name': 'Test Artist', 'genres': [ { 'genre': 'ELECTRONICA-00', 'subgenre': 'Alternative' } ], }, 'tracks': [ { 'release_reference': 'R1', 'asset': { 'filename': 'audio.flac', 'filepath': 'resources/', 'bucket': 'ddex-bucket', 'key': 'folder/subfolder/resources/audio.flac' }, 'volume': 1, 'sequence_number': 1, 'isrc': 'USSM12001699', 'release_type': 'TrackRelease', 'track_name': 'New Track', 'resource_reference': 'A1', } ], 'deals': None, 'key': 'folder/subfolder/', 'bucket': 'ddex-bucket', 'message_id': '12345', 'message_thread_id': '12345_TEST', 'party_id': 'PADPIDA2012041004F', 'update_indicator': 'OriginalMessage' } @pytest.fixture() def asset_object(): """Asset model.""" return Asset( **{ 'filename': 'audio.flac', 'filepath': 'resources/', 'bucket': 'ddex-bucket', 'key': 'folder/subfolder/resources/audio.flac', 'ows_assets_filename': None } ) @pytest.fixture def product_object(): """Product object representing DDEX data.""" return Product( **{ 'vendor_id': 123, 'subaccount_id': 123, 'release_reference': 'R0', 'upc': '886448369561', 'display_artist_name': 'Cool Artist', 'is_main_release': True, 'product_id': 12345, 'artwork': { 'filename': 'artwork.tif', 'filepath': 'resources/', 'bucket': 'ddex-bucket', 'key': 'folder/subfolder/resources/artwork.tif' }, 'release_type': 'Album', 'sale_start_date': None, 'original_release_date': None, } ) # TODO remove fields and refactor tests @pytest.fixture() def context_track_object(asset_object): """Track object representing DDEX data..""" return Track( **{ 'release_reference': 'R1', 'asset': asset_object, 'volume': 1, 'tuid': 45678, 'sequence_number': 1, 'isrc': 'USSM12001699', 'release_type': 'TrackRelease', 'resource_reference': 'A1', } ) # TODO remove fields and refactor tests @pytest.fixture() def ddex_track_object(asset_object): """Track object representing DDEX data..""" return Track( **{ 'release_reference': 'R1', 'asset': asset_object, 'volume': 1, 'tuid': 45678, 'sequence_number': 1, 'isrc': 'USSM12001699', 'release_type': 'TrackRelease', 'resource_reference': 'A1', } ) @pytest.fixture def error_correction_object(): """Error correction object.""" return { 'release_id': 2851194, 'release_correction_id': 287202, 'items': [ { 'release_correction_detail_id': 4203813, 'field_name': 'track', 'key_value': 'true', 'key_id': 2851194, 'table_name': 'track', }, ], } @pytest.fixture def correction_detail_object(): """Correction detail object.""" return { 'correctionDetailId': 4203814, 'fieldName': 'track', 'keyValue': True, 'keyId': 2851194, 'tableName': 'track', }