"""Test for the flac file details logic.""" from owsresponse import response from asset_file_details.logic import flac_file_details \ as flac_file_details_logic from asset_file_details.models import flac_file_details \ as flac_file_details_model def test_get_flac_file_details_logic(mocker): """Test getting the flac file details in the logic.""" upc = 1234567890 cd = 1 track_id = 1 audio_channels = 2 frequency = 44100 bits_per_sample = 16 filename = '1234567890_1_1.flac' md5_hash = '098f6bcd4621d373cade4e832627b4f6' initial_folder = 'WAV45/' folder_structure = '{upc(0,6)}/{upc(6,3)}/{upc}' test_model_result = ( [ 'audio_channels', 'frequency', 'bits_per_sample', 'filename', 'md5_hash', 'initial_folder', 'folder_structure' ], [ audio_channels, frequency, bits_per_sample, filename, md5_hash, initial_folder, folder_structure ] ) get_flac_file_details_mock = mocker.patch.object( flac_file_details_model, 'get_flac_file_details', return_value=test_model_result ) expected_logic_result = response.Response({ 'audio_channels': audio_channels, 'frequency': frequency, 'bits_per_sample': bits_per_sample, 'filename': filename, 'md5_hash': md5_hash, 'initial_folder': initial_folder, 'folder_structure': folder_structure }) result = flac_file_details_logic.get_flac_file_details(upc, cd, track_id) get_flac_file_details_mock.assert_called_once_with(upc, filename) assert result.__dict__ == expected_logic_result.__dict__ def test_get_flac_file_details_logic_flac_not_found(mocker): """Test getting the flac file details in the logic.""" upc = 1111111110 cd = 1 track_id = 1 filename = '1111111110_1_1.flac' test_model_result = ( [ 'audio_channels', 'frequency', 'bits_per_sample', 'filename', 'md5_hash', 'initial_folder', 'folder_structure' ], None ) get_flac_file_details_mock = mocker.patch.object( flac_file_details_model, 'get_flac_file_details', return_value=test_model_result ) expected_logic_result = response.Response('FLAC not found', None, 200) result = flac_file_details_logic.get_flac_file_details(upc, cd, track_id) get_flac_file_details_mock.assert_called_once_with(upc, filename) assert result.__dict__ == expected_logic_result.__dict__