"""Test Setup.""" from decimal import Decimal from dotenv import load_dotenv import pytest load_dotenv() @pytest.fixture() def mock_eligible_accounts(): """Mock eligible accounts results.""" return [ { 'contracts_payable': [ { 'current_balance': '900', 'currency_code': 'USD', 'contract_id': 9 }, { 'current_balance': '100', 'currency_code': 'USD', 'contract_id': 10 } ], 'currency_code': 'USD', 'current_balance': '1000.00', 'account_id': 123, 'payment_minimum': '12', 'country_of_tax_residence': 'USA', 'payoneer_program_id': 1 }, { 'contracts_payable': [ { 'current_balance': '300', 'currency_code': 'CAD', 'contract_id': 11 } ], 'currency_code': 'CAD', 'current_balance': '300.00', 'account_id': 321, 'payment_minimum': '14', 'country_of_tax_residence': 'CAN', 'payoneer_program_id': 1 } ] @pytest.fixture def mock_event(): """Mock an event.""" return { 'abacus_event_id': 1, 'target_type': 'payment_group_payment', 'target_id': '22', 'event_name': 'payments_generate', 'timestamp': '1997-07-16T19:20:30.45+01:00', 'user_type': 'royalties', 'user_id': '1' } @pytest.fixture() def mock_last_payment(): """Mock last payment posted for a given account.""" return { 'current_balance': '800.50', 'account_id': 123, 'balance_after_tax': '800.50', 'current_statement_period_id': 1 } @pytest.fixture() def mock_payment_group_payment(): """Mock payment group payment.""" return { 'payment_group_payment_id': 22, 'payment_group_id': 1 } @pytest.fixture() def mock_payment_accounts(): """Mock payment group payment accounts.""" return [ { 'contracts_payable': [ { 'current_balance': '900', 'currency_code': 'USD', 'contract_id': 9 }, { 'current_balance': '100', 'currency_code': 'USD', 'contract_id': 10 } ], 'currency_code': 'USD', 'current_balance': Decimal('1000.00'), 'last_payment': '0.00', 'tax_withholding': Decimal('400.0000'), 'balance_after_tax': Decimal('600.0000'), 'account_id': 123, 'payoneer_program_id': 1, 'last_statement_period_id': 1 } ] @pytest.fixture() def mock_payment_minimums(): """Mock payment minimums.""" return [ { 'wire_transfer_amount': '35.00', 'check_amount': '35.00', 'currency_code': 'USD', 'western_union_amount': '100.00', 'payment_minimum_id': 1, 'currency_name': 'US Dollar' }, { 'wire_transfer_amount': '35.00', 'check_amount': '35.00', 'currency_code': 'CAD', 'western_union_amount': None, 'payment_minimum_id': 2, 'currency_name': 'Canadian Dollar' } ] @pytest.fixture() def mock_reference_tax_withholding(): """Mock tax withholding rates.""" return [ { 'country_of_tax_residence': 'CAN', 'country_of_withholding': 'GBR', 'reference_tax_withholding_id': 1, 'tax_rate': '0.00' }, { 'country_of_tax_residence': 'USA', 'country_of_withholding': 'GBR', 'reference_tax_withholding_id': 2, 'tax_rate': '40.00' } ] @pytest.fixture() def mock_reference_tax_withholding_format(): """Mock reference tax withholding.""" return { 'CAN': '0.00', 'USA': '40.00' } @pytest.fixture() def mock_payment_minimums_format(): """Mock payment minimums.""" return { 'USD': { 'Check': '35.00', 'Wire Transfer': '35.00', 'Western Union': '100.00' }, 'CAD': { 'Check': '35.00', 'Wire Transfer': '35.00', 'Western Union': None } }