"""Integration tests suite.""" import pytest from abacus_common_logic.connectors.database import db from tests.integration.conftest import ows_abacus_legacy_sync_api_client @pytest.mark.jira('ACC-4147') def test_get_hello(basic_headers): """Get Hello Endpoint.""" legacy_sync_client = ows_abacus_legacy_sync_api_client(basic_headers) response = legacy_sync_client.get_hello() assert response.status_code == 200, 'Reason: {}\nURL: {}'.format( response.reason, response.url ) response_body = response.json() assert 'status' in response_body assert 'ok' in response_body['status'] @pytest.mark.jira('ACC-4149') def test_post_vendor_contract(basic_headers, clean_db, create_fixtures): """POST /vendor-contract .""" legacy_sync_client = ows_abacus_legacy_sync_api_client(basic_headers) body = { 'vendor_id': 77, 'cont_start': '2022-01-01', 'cont_end': '2122-12-31', 'contract_type': 'vendor_term', 'release_term': 0, 'opt_out': 'N', 'is_automatic_rollover': 'Y', 'payment_interval': 'month', 'pay_after': '30', 'digital_split': 0.75, 'currency_code': 'PLN', 'country_exclusion': ['POL'], } response_post = legacy_sync_client.post_vendor_contract(body) assert response_post.status_code == 201 assert response_post.json()['vendor_id'] == body['vendor_id'] assert response_post.json()['cont_start'] == body['cont_start'] assert response_post.json()['cont_end'] == body['cont_end'] assert response_post.json()['contract_type'] == body['contract_type'] assert response_post.json()['release_term'] == body['release_term'] assert response_post.json()['opt_out'] == body['opt_out'] assert ( response_post.json()['is_automatic_rollover'] == body['is_automatic_rollover'] ) assert response_post.json()['payment_interval'] == body['payment_interval'] assert response_post.json()['pay_after'] == body['pay_after'] assert response_post.json()['digital_split'] == body['digital_split'] assert response_post.json()['payment_interval'] == body['payment_interval'] @pytest.mark.jira('ACC-4630') def test_post_vendor_contract_distribution_type( basic_headers, clean_db, create_fixtures ): """POST /vendor-contract-distribution-type .""" legacy_sync_client = ows_abacus_legacy_sync_api_client(basic_headers) body = { 'vendor_id': 77, 'cont_start': '2022-01-01', 'cont_end': '2122-12-31', 'contract_type': 'vendor_term', 'release_term': 0, 'opt_out': 'N', 'is_automatic_rollover': 'Y', 'payment_interval': 'month', 'pay_after': '30', 'digital_split': 0.75, 'currency_code': 'PLN', 'country_exclusion': ['POL'], } response_post = legacy_sync_client.post_vendor_contract(body) assert response_post.status_code == 201 body = {'vendor_contract_id': 1, 'distribution_type_id': 1} response_post = legacy_sync_client.post_vendor_contract_distribution_type(body) assert response_post.status_code == 201 assert response_post.json()['distribution_type_id'] == body['distribution_type_id'] assert response_post.json()['vendor_contract_id'] == body['vendor_contract_id'] assert 'vendor_contract_distribution_type_id' in response_post.json() assert 'new_store_default' in response_post.json() @pytest.mark.jira('ACC-4902') def test_put_vendor_contract(basic_headers, clean_db, create_fixtures): """PUT /vendor-contract/ .""" query = """SELECT * FROM vendor_dms_master_restriction""" query_result = db.engine.execute(query) assert query_result.rowcount == 0 legacy_sync_client = ows_abacus_legacy_sync_api_client(basic_headers) post_body = { 'vendor_id': 77, 'cont_start': '2022-01-01', 'cont_end': '2122-12-31', 'contract_type': 'vendor_term', 'release_term': 0, 'opt_out': 'N', 'is_automatic_rollover': 'Y', 'payment_interval': 'month', 'pay_after': '30', 'digital_split': 0.75, 'currency_code': 'PLN', 'country_exclusion': ['POL'], } response_post = legacy_sync_client.post_vendor_contract(post_body) assert response_post.status_code == 201 vendor_contract_id = response_post.json()['vendor_contract_id'] body = { 'country_exclusion': ['USA'], 'store_exclusion': ['1', '2'], 'distribution_type_id': 1, } response_put = legacy_sync_client.put_vendor_contract(vendor_contract_id, body) assert response_put.status_code == 200 assert response_put.json()['vendor_id'] == post_body['vendor_id'] assert response_put.json()['cont_start'] == post_body['cont_start'] assert response_put.json()['payment_interval'] == post_body['payment_interval'] assert response_put.json()['contract_type'] == post_body['contract_type'] assert response_put.json()['release_term'] == post_body['release_term'] assert response_put.json()['pay_after'] == post_body['pay_after'] assert response_put.json()['opt_out'] == post_body['opt_out'] assert response_put.json()['digital_split'] == post_body['digital_split'] assert response_put.json()['cont_end'] == post_body['cont_end'] assert ( response_put.json()['is_automatic_rollover'] == post_body['is_automatic_rollover'] ) assert 'currency_id' in response_put.json() assert 'vendor_contract_id' in response_put.json() assert 'territory_carve_out' in response_put.json() query = """SELECT * FROM vendor_dms_master_restriction""" query_result = db.engine.execute(query) assert query_result.rowcount == 2