"""Test for release_localized_metadata model.""" from product.models import release_localized_metadata from tests.factories.release_localized_metadata import \ ReleaseLocalizedMetadataFactory as rlm_factory from tests.testutils import db @db.test_schema def test_get_metadata_by_id(test_product): """Test get_metadata_by_id with valid id.""" db.seed_models(rlm_factory.build_batch(2, release_id=test_product)) response = release_localized_metadata.get_metadata_by_id(test_product) assert response.status == 200 assert len(response.message) == 2 @db.test_schema def test_get_metadata_by_id_invalid(): """Test get_metadata_by_id when some id are invalid.""" response = release_localized_metadata.get_metadata_by_id(100) assert response.status == 404 assert response.errors['code'] == 'not_found_error' @db.test_schema def test_insert_metadata(test_product, fixture_language): """Test insert_metadata with valid id.""" db.seed_models(rlm_factory.build( release_id=test_product, language_id=fixture_language)) data = { 'product_name': 'Release name in afr', 'delivered_version': 'Product Version in afr' } response = release_localized_metadata.insert_metadata( test_product, fixture_language, data) assert response.status == 200 assert 'product_name' in response.message assert response.message.get('product_name') == data['product_name'] assert 'delivered_version' in response.message assert response.message.get('delivered_version') == \ data['delivered_version'] @db.test_schema def test_insert_metadata_invalid(test_product, fixture_language): """Test insert_metadata when some id are invalid.""" db.seed_models(rlm_factory.build( release_id=test_product, language_id=fixture_language)) response = release_localized_metadata.insert_metadata( test_product, fixture_language, {'bad': 'data'}) assert response.status == 400 assert response.errors['code'] == 'invalid_data' @db.test_schema def test_delete_metadata(test_product, fixture_language): """Test delete_metadata with valid id.""" db.seed_models(rlm_factory.build( release_id=test_product, language_id=fixture_language)) db.seed_models(rlm_factory.build(release_id=test_product, language_id=2)) response = release_localized_metadata.delete_metadata( test_product, fixture_language) assert response.status == 200 assert response.message == '1 Release localization deleted.' @db.test_schema def test_delete_metadata_no_match(test_product, fixture_language): """Test delete_metadata when no matching data found.""" db.seed_models(rlm_factory.build(release_id=test_product, language_id=2)) response = release_localized_metadata.delete_metadata( test_product, fixture_language) assert response.status == 404