"""Test for product_review_status.""" import pytest from content_review.models import product_review_status from content_review.utils import db_operations @pytest.fixture def db_fixture(): """Set up the vendor table.""" db_operations.create_tables() db_operations.seed_review_type_table() db_operations.seed_review_status_type_table() db_operations.seed_product_status_review_and_history_table() @pytest.fixture def update_mena_products_payload(): """Payload for updating products.""" return [ { 'product_id': 100, 'review_timestamp': '2017-09-27 11:26:19', 'review_status': 'Rejected' }, { 'product_id': 1, 'review_timestamp': '2017-09-27 11:26:19', 'review_status': 'Approved' }, { 'product_id': 500, 'review_timestamp': '2017-09-27 11:26:19', 'review_status': 'Approved' } ] def test_get_products_status_review(db_fixture): """Test get current products.""" actual_response = product_review_status.get_products_status_review( product_list=[100, 200] ) assert 200 == actual_response.status assert 2 == len(actual_response.message) def test_get_product_history(db_fixture): """Test get current and historical products.""" actual_response = product_review_status.get_product_status_review_history( product_id=100 ) assert 200 == actual_response.status assert 3 == len(actual_response.message.get('items')) def test_get_product_history_paging(db_fixture): """Test get current and historical products using paging.""" actual_response = product_review_status.get_product_status_review_history( product_id=100, page_limit=1 ) assert 200 == actual_response.status assert 1 == len(actual_response.message.get('items')) actual_response = product_review_status.get_product_status_review_history( product_id=100, page_offset=1, page_limit=1 ) assert 200 == actual_response.status assert 1 == len(actual_response.message.get('items')) actual_response = product_review_status.get_product_status_review_history( product_id=100, page_offset=3, page_limit=1 ) assert 404 == actual_response.status actual_response = product_review_status.get_product_status_review_history( product_id=5654, page_offset=2, page_limit=1 ) assert 404 == actual_response.status actual_response = product_review_status.get_product_status_review_history( product_id=100, page_offset=0, page_limit=2 ) assert 200 == actual_response.status assert 2 == len(actual_response.message.get('items')) def test_create_new_product_review(db_fixture): """Test create new and update product review.""" actual_response = product_review_status.create_product_status_review( product_list=[1], review_type_id=1, review_status_type_id=1 ) assert 201 == actual_response.status assert 1 == actual_response.message.get('processed_records') actual_response = product_review_status.create_product_status_review( product_list=[1, 2, 3], review_type_id=1, review_status_type_id=1 ) assert 201 == actual_response.status assert 2 == actual_response.message.get('processed_records') def test_create_new_no_product_review(db_fixture): """Test create new and update product review.""" actual_response = product_review_status.create_product_status_review( product_list=[], review_type_id=1, review_status_type_id=1 ) assert 201 == actual_response.status assert 0 == actual_response.message.get('processed_records') def test_update_product_review(db_fixture, update_mena_products_payload): """Update a product review status.""" actual_response = product_review_status.update_product_status_review( 1, update_mena_products_payload ) assert 201 == actual_response.status assert 3 == actual_response.message.get('processed_records')