"""Test Setup.""" import pytest @pytest.fixture def mock_event(): """Mock an event.""" return { 'abacus_event_id': 1, 'target_type': 'contract', 'target_id': '1', 'event_name': 'legacy_sync_contract', 'timestamp': '1997-07-16T19:20:30.45+01:00', 'user_type': 'royalties', 'user_id': '1', } @pytest.fixture def mock_event_separate_contract(): """Mock an event.""" return { 'abacus_event_id': 1, 'target_type': 'contract', 'target_id': '3', 'event_name': 'legacy_sync_contract', 'timestamp': '1997-07-16T19:20:30.45+01:00', 'user_type': 'royalties', 'user_id': '1', } @pytest.fixture def mock_contract_details(): """Fixture for contract details.""" return { 'term_start': '2022-01-01', 'account_id': 11, 'contract_id': 1, 'term_end': '2122-11-30', 'contract_name': 'Super Contract', 'contract_type': 'distribution', 'oa_contract_id': 111, } @pytest.fixture def mock_account_contracts(): """Fixture for account contracts.""" return { 'items': [ { 'term_start': '2022-01-01', 'account_id': 11, 'contract_id': 1, 'term_end': '2122-11-30', 'contract_name': 'Super Contract', 'contract_type': 'distribution', 'oa_contract_id': 111, } ], 'total_count': 1, } @pytest.fixture def mock_contract_exclusions(): """Fixture for contract exclusions.""" return { 'contract_exclusion_id': 1, 'contract_id': 123, 'exclusions': {'countries': ['USA', 'RUS'], 'stores': ['1']}, } @pytest.fixture def mock_contract_lifecycle(): """Fixture for contract_lifecycle.""" return { 'contract_lifecycle_id': 1, 'contract_id': 123, 'lifecycle_status': 'init', 'lifecycle_term_start': '2025-01-01', 'lifecycle_term_end': None, } @pytest.fixture def mock_contract_states(): """Fixture for contract abacus states.""" return [ { 'abacus_state_id': 1, 'action_name': 'legacy_sync', 'action_status': 'init', 'message': None, }, { 'abacus_state_id': 2, 'action_name': 'sap_sync', 'action_status': 'init', 'message': None, }, ] @pytest.fixture def mock_contract_terms(): """Fixture for contract terms.""" return [ { 'contract_id': 1, 'term_type': 'label', 'attachments': ['1010', '2010'], 'attachments_relations': None, 'is_base_term': True, 'contract_term_id': 1, }, { 'contract_id': 1, 'term_type': 'product', 'attachments': ['10293127301239', '12393289047238'], 'attachments_relations': None, 'is_base_term': False, 'contract_term_id': 2, }, ] @pytest.fixture def mock_contract_terms_without_base_term(): """Fixture for contract terms without any base terms.""" return [ { 'contract_id': 1, 'term_type': 'label', 'attachments': ['1010', '2010'], 'attachments_relations': None, 'is_base_term': False, 'contract_term_id': 1, }, { 'contract_id': 1, 'term_type': 'product', 'attachments': ['10293127301239', '12393289047238'], 'attachments_relations': None, 'is_base_term': False, 'contract_term_id': 2, }, ] @pytest.fixture def mock_contract_term_conditions(): """Fixture for contract term conditions.""" return [ { 'conditions': { 'transaction_types': ['type-1', 'type-1-1'], 'stores': ['some-store-1', 'some-another'], 'countries': ['USA'], }, 'contract_term_condition_id': 1, 'term_rate': '80.00', 'priority': 1, 'contract_term_id': 1, }, { 'conditions': {'transaction_types': [], 'stores': [], 'countries': []}, 'contract_term_condition_id': 2, 'term_rate': '60.00', 'priority': 2, 'contract_term_id': 1, }, ] @pytest.fixture def mock_account_payment_terms(): """Fixture for account payment terms response.""" return { 'account_payment_term_id': 1, 'account_id': 11, 'currency_code': 'USD', 'payment_entity_id': 1, 'payment_minimum': '35.00', 'payment_schedule': '30_days_after_month_end', } @pytest.fixture def mock_legacy_contract_body(): """Fixture for legacy sync request body.""" return { 'vendor_id': 11, 'cont_start': '2022-01-01', 'cont_end': '2122-12-31', 'is_automatic_rollover': 'Y', 'payment_interval': 'month', 'pay_after': '30', 'digital_split': 0.75, 'currency_code': 'USD', 'country_exclusion': None, } @pytest.fixture def mock_legacy_contract_put_body(): """Fixture for legacy sync put request body.""" return { 'country_exclusion': ['RUS'], 'store_exclusion': ['1', '2'], 'distribution_type_id': 1, } @pytest.fixture() def mock_legacy_contract_response(): """Fixture for legacy sync contract response.""" return { 'cont_start': '2022-01-01', 'vendor_id': 11, 'territory_carve_out': '1', 'payment_interval': 'month', 'cont_end': '2122-12-31', 'contract_type': 'vendor_term', 'pay_after': '30', 'is_automatic_rollover': 'Y', 'digital_split': 0.75, 'currency_id': 1, 'vendor_contract_id': 1, 'release_term': 0, 'opt_out': 'N', } @pytest.fixture def mock_vendor_contract_distribution_type_body(): """Fixture for vendor_contract_distribution_type request body.""" return { 'vendor_contract_id': 1, 'ditsribution_type_id': 1, 'new_store_default': 'N', } @pytest.fixture def mock_vendor_contract_distribution_type_response(): """Fixture for vendor_contract_distribution_type response.""" return { 'vendor_contract_distribution_type_id': 1, 'vendor_contract_id': 1, 'ditsribution_type_id': 1, 'new_store_default': 'N', } @pytest.fixture def mock_abacus_legacy_contract_response(): """Fixture for legacy_contract response.""" return {'legacy_contract_id': 1, 'contract_id': 1, 'oa_contract_id': 1234}