"""Tests for get_product_localization handler.""" import json from tests.factories.release_artist import ReleaseArtistFactory from tests.factories.release_artist_localized_metadata import \ ReleaseArtistLocalizedMetadataFactory from tests.factories.release_localized_metadata import \ ReleaseLocalizedMetadataFactory from tests.testutils import db @db.test_schema def test_get_product_localization(test_product, client): """Test get_product_localization is successful.""" db.insert_vw_product() db.seed_models( ReleaseLocalizedMetadataFactory.build(release_id=test_product)) db.seed_models(ReleaseArtistFactory.build(release_artist_id=1)) db.seed_models( ReleaseArtistLocalizedMetadataFactory.build(release_artist_id=1)) server_response = client.get('/localization/product/1?legacy=1') actual_result = json.loads(server_response.data.decode()) assert server_response.status_code == 200 assert actual_result['product_id'] == 1 assert len(actual_result['items']) == 1 assert 'language_id' in actual_result['items'][0] assert 'product_name' in actual_result['items'][0] assert len(actual_result['items'][0]['primary_artist']) == 1 @db.test_schema def test_get_product_localization_invalid_product(client): """Test get_product_localization fails with invalid product.""" server_response = client.get('/localization/product/100?legacy=1') assert server_response.status_code == 404 @db.test_schema def test_get_product_localization_no_data(client): """Test get_product_localization fails with no localization data.""" db.insert_vw_product() server_response = client.get('/localization/product/1?legacy=1') actual_result = json.loads(server_response.data.decode()) assert server_response.status_code == 404 assert actual_result['message'] == 'No localized metadata.' assert actual_result['code'] == 'not_found_error'