"""Test for scheduled product updates CRUD operations.""" from product_workflow.constants import error from product_workflow.constants import success from product_workflow.models import meta_update_queue from tests.testutils import db @db.test_schema def test_create_meta_update_queue(mocker): """Test that meta_update_queue records are created.""" db.insert_into_meta_update_queue() upc = 123 data = { 'description': None, 'delivery_store_ids': [1] } mocker.patch.object( meta_update_queue, 'get_delivery_history_stores', return_value=[1, 2, 3]) result = meta_update_queue.create_meta_update_queue(upc, data) assert result.message == success.CREATE_META_UPDATE_SUCCESS assert result.status == 201 @db.test_schema def test_create_meta_update_queue_with_description(mocker): """Test that meta_update_queue records are created with description.""" db.insert_into_meta_update_queue() upc = 123 data = { 'description': 'Scheduled update', 'delivery_store_ids': [1] } mocker.patch.object( meta_update_queue, 'get_delivery_history_stores', return_value=[1, 2, 3]) result = meta_update_queue.create_meta_update_queue(upc, data) assert result.message == success.CREATE_META_UPDATE_SUCCESS assert result.status == 201 @db.test_schema def test_create_meta_update_queue_fails_no_history(mocker): """Test that meta_update_queue records are created with description.""" db.insert_into_meta_update_queue() upc = 123 data = { 'description': 'Scheduled update', 'delivery_store_ids': [12] } mocker.patch.object( meta_update_queue, 'get_delivery_history_stores', return_value=[]) result = meta_update_queue.create_meta_update_queue(upc, data) assert result.errors.get('message') \ == error.ERROR_MESSAGE_HISTORY_NOT_EXIST.format(upc) assert result.status == 404 @db.test_schema def test_create_meta_update_queue_fails_no_selected_history(mocker): """Test that meta_update_queue records are created with description.""" db.insert_into_meta_update_queue() upc = 123 data = { 'description': 'Scheduled update', 'delivery_store_ids': [12] } mocker.patch.object( meta_update_queue, 'get_delivery_history_stores', return_value=[1, 2, 3]) result = meta_update_queue.create_meta_update_queue(upc, data) assert result.errors.get('message') \ == error.ERROR_MESSAGE_SELECTED_NOT_IN_HISTORY.format(upc) assert result.status == 404