"""Test Setup.""" from decimal import Decimal import pytest from commit_royalties.constants.constants import LEDGER_TYPES @pytest.fixture def mock_abacus_states(): """Mock a set of abacus states.""" return [ { 'action_name': 'commit_royalties', 'abacus_state_id': 1, 'action_status': 'init', 'parent_table_id': '1337', 'parent_table_name': 'accounting_run' }, { 'action_name': 'some_action_name', 'abacus_state_id': 2, 'action_status': 'init', 'parent_table_id': '2322', 'parent_table_name': 'accounting_run' } ] @pytest.fixture def mock_abacus_state(): """Mock an abacus state.""" return { 'action_name': 'commit_royalties', 'abacus_state_id': 1, 'action_status': 'init', 'parent_table_id': '1337', 'parent_table_name': 'accounting_run' } @pytest.fixture def mock_accounting_run(): """Mock accounting run.""" return { 'accounting_period_id': 1, 'accounting_period_name': 'period name', 'accounting_run_id': 1337, 'run_controller_id': 1, 'run_controller_name': 'AWAL GDA', 'run_status': 'Committed', 'start_date': '2022-01-01', 'summary_export_url': 's3://qa-royalties-sales-files/period/run/summary.tsv' } @pytest.fixture def mock_account_query(): """Mock account_ids response from snowflake query.""" return [ {'ACCOUNT_ID': 1}, {'ACCOUNT_ID': 2}, {'ACCOUNT_ID': 4}, ] @pytest.fixture def mock_event(): """Mock an event.""" return { 'abacus_event_id': 1, 'target_type': 'accounting_run', 'target_id': '1337', 'event_name': 'commit_royalties', 'timestamp': '1997-07-16T19:20:30.45+01:00', 'user_type': 'royalties', 'user_id': '1' } @pytest.fixture def mock_ledger_account(): """Mock ledger_account entry.""" return { 'abacus_event_id': 1, 'account_id': 1, 'contract_id': 1, 'currency_amount': '191.02', 'currency_code': 'USD', 'model_type': LEDGER_TYPES.ACCOUNT } @pytest.fixture def mock_ledger_deposit(): """Mock ledger_deposit entry.""" return { 'abacus_event_id': 1, 'account_id': 1, 'contract_id': 1, 'currency_code': 'USD', 'model_type': LEDGER_TYPES.DEPOSIT, 'remaining_amount': '.0123', 'rounded_amount': '191.02' } @pytest.fixture() def mock_ledger_params(): """Mock ledger params for creating ledger entries.""" return { 'account_ledger_amount': Decimal('100.00'), 'contract_id': 44, 'currency_code': 'EUR', 'remainder': Decimal('0.000000000000000001'), 'rounded_amount': Decimal('100.00') } @pytest.fixture def mock_sales_query(): """Mock sales response from snowflake query.""" return [ { 'ACCOUNT_ID': 1, 'CONTRACT_ID': 1, 'CURRENCY_CODE': 'USD', 'AMOUNT': Decimal('44.444444444444444444') }, { 'ACCOUNT_ID': 1, 'CONTRACT_ID': 2, 'CURRENCY_CODE': 'USD', 'AMOUNT': Decimal('0.000003300000000000') }, { 'ACCOUNT_ID': 1, 'CONTRACT_ID': 3, 'CURRENCY_CODE': 'USD', 'AMOUNT': Decimal('111111.111111111111110000') }, { 'ACCOUNT_ID': 1, 'CONTRACT_ID': 4, 'CURRENCY_CODE': 'USD', 'AMOUNT': Decimal('111111.139000000000000000') } ]