"""Test asset file details logic.""" from owsresponse import response from asset_file_details.constants import error from asset_file_details.logic import file_details \ as file_details_logic from asset_file_details.models import file_details \ as file_details_model def test_get_asset_file_details_logic(mocker): """Test getting the valid file details in the logic.""" file_format = 'wav' upc = 1234567890 audio_channels = 2 frequency = 44100 bits_per_sample = 16 filename = '1234567890_1_1.wav' md5_hash = '098f6bcd4621d373cade4e832627b4f6' initial_folder = 'WAV45/' folder_structure = '{upc(0,6)}/{upc(6,3)}/{upc}' host = '10.10.40.150' test_model_result = [ { '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, 'host': host } ] get_asset_file_details_mock = mocker.patch.object( file_details_model, 'get_file_details_by_format', 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, 'host': host }]) result = file_details_logic.get_file_details_by_format(file_format, upc) get_asset_file_details_mock.assert_called_once_with(file_format, upc, 1) assert result.__dict__ == expected_logic_result.__dict__ def test_get_asset_file_details_logic_file_not_found(mocker): """Test assets file details logic when file not found.""" file_format = 'wav' upc = 1111111110 test_model_result = None get_file_details_mock = mocker.patch.object( file_details_model, 'get_file_details_by_format', return_value=test_model_result ) expected_logic_result = response.Response( {'message': error.ERROR_MESSAGE_NOT_ASSET_FOUND}) result = file_details_logic.get_file_details_by_format(file_format, upc) get_file_details_mock.assert_called_once_with(file_format, upc, 1) assert result.__dict__ == expected_logic_result.__dict__