"""Test Setup.""" from dotenv import load_dotenv import pytest from snapshot_contract.constants import IMPOSSIBLE_DATE_FUTURE from snapshot_contract.constants import LABEL load_dotenv() MOCK_COUNTRY_IDS = [826, 840] MOCK_CURRENCY_ID = 1 MOCK_ISRC_ID = 999 MOCK_STORE_IDS = [10, 18] MOCK_TXN_TYPE_IDS = [4, 5] MOCK_UPC = 987654321 MOCK_VENDOR_IDS = [20, 21] @pytest.fixture def mock_base_contract(): """Mock base contract dict.""" return { 'accounting_run_id': 12, 'contract_id': 123, 'payee_currency_id': 840, 'payee_id': 11, 'term_end': IMPOSSIBLE_DATE_FUTURE, 'term_start': '2020-01-01', 'priority': 0, 'contract_vendor_id': 0, 'base_store_id': 0, 'base_territory_id': 0, 'base_transaction_type_id': 0, 'base_rate': 0, 'product_upc': 0, 'product_store_id': 0, 'product_territory_id': 0, 'product_transaction_type_id': 0, 'product_rate': 0, 'track_isrc_id': 0, 'track_store_id': 0, 'track_territory_id': 0, 'track_transaction_type_id': 0, 'track_rate': 0 } @pytest.fixture def mock_contract(): """Mock contract dict.""" return { 'contract_id': 123, 'currency_code': 840, 'payee_id': 11, 'term_start': '2020-01-01', 'term_end': '' } @pytest.fixture def mock_contract_term(): """Mock contract term condition.""" return { 'contract_id': 123, 'attachments': MOCK_VENDOR_IDS, 'conditions': { 'countries': ['CAD', 'MEX', 'USA'], 'stores': MOCK_STORE_IDS, 'transaction_types': [MOCK_TXN_TYPE_IDS[0]] }, 'is_base_term': '1', 'priority': 1, 'term_rate': '10.00', 'term_type': LABEL } @pytest.fixture def mock_event(): """Mock an event.""" return { 'abacus_event_id': 1, 'target_type': 'accounting_run', 'target_id': '1337', 'event_name': 'snapshot-contract', 'timestamp': '1997-07-16T19:20:30.45+01:00', 'user_type': 'royalties', 'user_id': '1' } @pytest.fixture def mock_flat_contract_data(): """Mock flat contract data.""" return [ { 'accounting_run_id': '1337', 'contract_id': 123, 'payee_currency_id': MOCK_CURRENCY_ID, 'payee_id': 11, 'term_end': IMPOSSIBLE_DATE_FUTURE, 'term_start': '2020-01-01', 'priority': 1, 'contract_vendor_id': MOCK_VENDOR_IDS[0], 'base_store_id': MOCK_STORE_IDS[0], 'base_territory_id': MOCK_COUNTRY_IDS[0], 'base_transaction_type_id': MOCK_TXN_TYPE_IDS[0], 'base_rate': 20.20, 'product_upc': 0, 'product_store_id': 0, 'product_territory_id': 0, 'product_transaction_type_id': 0, 'product_rate': 0, 'track_isrc_id': 0, 'track_store_id': 0, 'track_territory_id': 0, 'track_transaction_type_id': 0, 'track_rate': 0 }, { 'accounting_run_id': '1337', 'contract_id': 123, 'payee_currency_id': MOCK_CURRENCY_ID, 'payee_id': 12, 'term_end': '2030-12-31', 'term_start': '2020-01-01', 'priority': 1, 'contract_vendor_id': 0, 'base_store_id': 0, 'base_territory_id': 0, 'base_transaction_type_id': 0, 'base_rate': 0, 'product_upc': 0, 'product_store_id': 0, 'product_territory_id': 0, 'product_transaction_type_id': 0, 'product_rate': 0, 'track_isrc_id': MOCK_ISRC_ID, 'track_store_id': MOCK_STORE_IDS[0], 'track_territory_id': MOCK_COUNTRY_IDS[0], 'track_transaction_type_id': MOCK_TXN_TYPE_IDS[0], 'track_rate': 21.21 }, { 'accounting_run_id': '1337', 'contract_id': 123, 'payee_currency_id': MOCK_CURRENCY_ID, 'payee_id': 12, 'term_end': '2030-12-31', 'term_start': '2020-01-01', 'priority': 1, 'contract_vendor_id': 0, 'base_store_id': 0, 'base_territory_id': 0, 'base_transaction_type_id': 0, 'base_rate': 0, 'product_upc': MOCK_UPC, 'product_store_id': MOCK_STORE_IDS[0], 'product_territory_id': MOCK_COUNTRY_IDS[0], 'product_transaction_type_id': MOCK_TXN_TYPE_IDS[0], 'product_rate': 22.22, 'track_isrc_id': 0, 'track_store_id': 0, 'track_territory_id': 0, 'track_transaction_type_id': 0, 'track_rate': 0 }, ] @pytest.fixture def mock_flat_contract_terms(): """Mock flattened contract term conditions.""" return [ { 'priority': 1, 'vendor_id': MOCK_VENDOR_IDS[0], 'base_store_id': MOCK_STORE_IDS[0], 'base_territory_id': MOCK_COUNTRY_IDS[0], 'base_transaction_type_id': MOCK_TXN_TYPE_IDS[0], 'base_rate': '10.10' }, { 'priority': 2, 'product_upc': MOCK_UPC, 'product_store_id': MOCK_STORE_IDS[1], 'product_territory_id': MOCK_COUNTRY_IDS[1], 'product_transaction_type_id': MOCK_TXN_TYPE_IDS[1], 'product_rate': '20.20' }, { 'priority': 3, 'track_isrc_id': MOCK_ISRC_ID, 'track_store_id': MOCK_STORE_IDS[0], 'track_territory_id': MOCK_COUNTRY_IDS[1], 'track_transaction_id': MOCK_TXN_TYPE_IDS[0], 'track_rate': '30.30' } ] @pytest.fixture def mock_isrcs(): """Mock isrcs.""" return [ {'isrcId': 1, 'isrc': 'USA0123456'}, {'isrcId': 2, 'isrc': 'ORCD789012'} ]