"""Test delete_track_localization with tuids and tuid+language.""" import json from tests.factories.track_artist import TrackArtistFactory from tests.factories.track_artist_localized_metadata import \ TrackArtistLocalizedMetadataFactory from tests.factories.track_localized_metadata import \ TrackLocalizedMetadataFactory from tests.testutils import db @db.test_schema def test_delete_track_localization_with_tuids(client): """Test delete_track_localization_with_tuids is successful.""" db.insert_itunes_languages() db.seed_models(TrackLocalizedMetadataFactory.build_batch(3, tuid=1001)) db.seed_models(TrackLocalizedMetadataFactory.build_batch(2, tuid=1002)) db.seed_models(TrackArtistFactory.build(track_artist_id=100, tuid=1001)) db.seed_models(TrackArtistFactory.build(track_artist_id=200, tuid=1002)) db.seed_models(TrackArtistLocalizedMetadataFactory.build_batch( 3, track_artist_id=100)) db.seed_models(TrackArtistLocalizedMetadataFactory.build_batch( 2, track_artist_id=200)) server_response = client.delete('/localization/track/1001,1002') assert server_response.status_code == 200 # 1001 in 3 languages and 1002 in 2 languages so 5 records. assert server_response.data == b'5 track localizations deleted.' # do a GET call to double check. server_response = client.get('/localization/track/1001,1002') assert server_response.status_code == 200 actual_result = json.loads(server_response.data.decode()) assert actual_result['items'] == [] @db.test_schema def test_delete_track_localization_with_tuids_no_data(client): """Test delete_track_localization_with_tuids with no localization data.""" server_response = client.delete('/localization/track/1001,1002') assert server_response.status_code == 200 assert server_response.data == b'0 track localizations deleted.' @db.test_schema def test_delete_track_localization_with_language(client): """Test delete_track_localization_with_language is successful.""" db.insert_itunes_languages() db.seed_models(TrackLocalizedMetadataFactory.build( tuid=1001, language_id=1)) db.seed_models(TrackLocalizedMetadataFactory.build( tuid=1001, language_id=12)) db.seed_models(TrackArtistFactory.build(track_artist_id=100, tuid=1001)) db.seed_models(TrackArtistLocalizedMetadataFactory.build( track_artist_id=100, language_id=1)) server_response = client.delete('/localization/track/1001/language/1') assert server_response.status_code == 200 # only 1001 will be deleted and only 1 language. assert server_response.data == b'1 track localizations deleted.' # do a GET call to double check only language 12 remains. server_response = client.get('/localization/track/1001') assert server_response.status_code == 200 actual_result = json.loads(server_response.data.decode()) assert len(actual_result['items']) == 1 assert actual_result['items'][0]['language_id'] == 12 assert actual_result['items'][0]['tuid'] == 1001