"""Unit tests for matches logic.""" from src.logic.matches import _check_if_match_is_valid from src.logic.matches import _collect_matches_for_publish_by_track from src.logic.matches import collect_all_matches_for_publish def test_check_if_match_is_valid_with_valid_match(): """Test check if match is valid with valid match.""" match1 = { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'isrc': 'USSR21300953', 'upc': '0669311307620' } match2 = { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'isrc': None, 'upc': None } match3 = { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'isrc': None, 'upc': '0669311307620' } match4 = { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'isrc': 'USSR21300953', 'upc': None } match5 = { 'isrc': None, 'upc': '0669311307620' } match6 = { 'isrc': 'USSR21300953', 'upc': None } assert _check_if_match_is_valid(match1) is True assert _check_if_match_is_valid(match2) is False assert _check_if_match_is_valid(match3) is True assert _check_if_match_is_valid(match4) is True assert _check_if_match_is_valid(match5) is False assert _check_if_match_is_valid(match6) is False def test_collect_matches_by_track_for_publish_with_rights_claims(mock_ows_assets_response): """Test collect matches by track for publish with rights claims.""" results = _collect_matches_for_publish_by_track( mock_ows_assets_response['items'][0]['asset_final_id'], mock_ows_assets_response['items'][0]['matches'] ) assert results == [ { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'asset_final_id': 141142164, 'confidence_score': 100, 'distributor': 'Test Distributor 1', 'pi_isrc': 'USSR21300953', 'pi_label': 'Sumthing Else Music Works', 'pi_release_name': 'MM25: Mega Man Rocks', 'pi_track_artists': ['Mega Ran'], 'pi_track_name': 'Splash Woman', 'pi_upc': '0669311307620', 'territories_in_conflict': ['AD', 'AE', 'AF'] }, { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'asset_final_id': 141142164, 'confidence_score': 100, 'distributor': 'Test Distributor 2', 'pi_isrc': 'USSR21300953', 'pi_label': 'Sumthing Else Music Works', 'pi_release_name': 'MM25: Mega Man Rocks', 'pi_track_artists': ['Mega Ran'], 'pi_track_name': 'Splash Woman', 'pi_upc': '0669311307620', 'territories_in_conflict': None } ] def test_collect_matches_by_track_for_publish_with_no_rights_claims(mock_ows_assets_response): """Test collect matches by track for publish with no rights claims.""" results = _collect_matches_for_publish_by_track( mock_ows_assets_response['items'][2]['asset_final_id'], mock_ows_assets_response['items'][2]['matches'] ) assert results == [ { 'acrid': '41673adfc18268a31c84f1eb6c798084', 'asset_final_id': 141142167, 'confidence_score': 100, 'distributor': None, 'pi_isrc': 'QM6MZ2214877', 'pi_label': 'Rimas Entertainment LLC', 'pi_release_name': 'Un Verano Sin Ti', 'pi_track_artists': ['Bad Bunny'], 'pi_track_name': 'Me Porto Bonito', 'pi_upc': '0196626945068', 'territories_in_conflict': None }, { 'acrid': 'a797f217a6950b32b461bd86d7692093', 'asset_final_id': 141142167, 'confidence_score': 100, 'distributor': None, 'pi_isrc': 'ARIXB2203260', 'pi_label': 'ManuRG', 'pi_release_name': 'Me Porto Bonito (Turreo)', 'pi_track_artists': ['Manu Rg/Carlitos Ag'], 'pi_track_name': 'Me Porto Bonito (Turreo) (Remix)', 'pi_upc': '0698142349110', 'territories_in_conflict': None } ] def test_collect_all_matches_for_publish(mock_ows_assets_response): """Test collect all matches for publish.""" results = collect_all_matches_for_publish(mock_ows_assets_response['items']) assert results == [ { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'asset_final_id': 141142164, 'confidence_score': 100, 'distributor': 'Test Distributor 1', 'pi_isrc': 'USSR21300953', 'pi_label': 'Sumthing Else Music Works', 'pi_release_name': 'MM25: Mega Man Rocks', 'pi_track_artists': ['Mega Ran'], 'pi_track_name': 'Splash Woman', 'pi_upc': '0669311307620', 'territories_in_conflict': ['AD', 'AE', 'AF'] }, { 'acrid': 'c0b27c7862afa1eb5ffa9e8061469625', 'asset_final_id': 141142164, 'confidence_score': 100, 'distributor': 'Test Distributor 2', 'pi_isrc': 'USSR21300953', 'pi_label': 'Sumthing Else Music Works', 'pi_release_name': 'MM25: Mega Man Rocks', 'pi_track_artists': ['Mega Ran'], 'pi_track_name': 'Splash Woman', 'pi_upc': '0669311307620', 'territories_in_conflict': None }, { 'acrid': '41673adfc18268a31c84f1eb6c798084', 'asset_final_id': 141142167, 'confidence_score': 100, 'distributor': None, 'pi_isrc': 'QM6MZ2214877', 'pi_label': 'Rimas Entertainment LLC', 'pi_release_name': 'Un Verano Sin Ti', 'pi_track_artists': ['Bad Bunny'], 'pi_track_name': 'Me Porto Bonito', 'pi_upc': '0196626945068', 'territories_in_conflict': None }, { 'acrid': 'a797f217a6950b32b461bd86d7692093', 'asset_final_id': 141142167, 'confidence_score': 100, 'distributor': None, 'pi_isrc': 'ARIXB2203260', 'pi_label': 'ManuRG', 'pi_release_name': 'Me Porto Bonito (Turreo)', 'pi_track_artists': ['Manu Rg/Carlitos Ag'], 'pi_track_name': 'Me Porto Bonito (Turreo) (Remix)', 'pi_upc': '0698142349110', 'territories_in_conflict': None } ]