"""Test fixtures.""" from decimal import Decimal import pytest from commit_ledger_account_contract.constants.constants import LEDGER_TYPES # ABACUS_EVENTS: @pytest.fixture def mock_commit_contract_advance_event(): """Mock commit_advance_payment event.""" return { 'abacus_event_id': 1, 'event_name': 'commit_advance_payment', 'statement_period_id': 300, 'target_type': 'worksheet_payment_contract_advance', 'target_id': 123, } @pytest.fixture def mock_commit_vat_summary_event(): """Mock commit_vat_summary event.""" return { 'abacus_event_id': 2, 'event_name': 'commit_vat_summary', 'statement_period_id': 300, 'target_type': 'vat_summary_file', 'target_id': 1, } @pytest.fixture def mock_return_advance_payment_event(): """Mock return_advance_payment event.""" return { 'abacus_event_id': 1, 'event_name': 'return_advance_payment', 'statement_period_id': 300, 'target_type': 'worksheet_payment_contract_advance', 'target_id': 123, } @pytest.fixture def mock_commit_batch_payment_event(): """Mock commit_batch_payment event.""" return { 'abacus_event_id': 1, 'event_name': 'commit_batch_payment', 'target_type': 'payment_group_payment_batch', 'target_id': 123, } @pytest.fixture def mock_commit_vat_summary_payment_group_event(): """Mock commit_vat_summary event for a payment group.""" return { 'abacus_event_id': 1, 'event_name': 'commit_vat_summary', 'target_type': 'payment_group_payment_batch', 'target_id': 123, } @pytest.fixture def mock_commit_wht_tax_event(): """Mock commit_withholding_tax event.""" return { 'abacus_event_id': 1, 'event_name': 'commit_withholding_tax', 'target_type': 'payment_group_payment_batch', 'target_id': 123, } @pytest.fixture def mock_return_batch_payment_event(): """Mock return_batch_payment event.""" return { 'abacus_event_id': 1, 'event_name': 'return_batch_payment', 'target_type': 'payment_group_payment_account', 'target_id': 123, } @pytest.fixture def mock_return_vat_summary_event(): """Mock return_vat_summary event.""" return { 'abacus_event_id': 1, 'event_name': 'return_vat_summary', 'target_type': 'payment_group_payment_account', 'target_id': 123, } @pytest.fixture def mock_return_wht_tax_event(): """Mock return_withholding_tax event.""" return { 'abacus_event_id': 1, 'event_name': 'return_withholding_tax', 'target_type': 'payment_group_payment_account', 'target_id': 123, } # LEDGERS: @pytest.fixture def mock_bulk_ledger_post_body(): """Mock ledger_account_contract POST body.""" return [ { 'abacus_event_id': 1, 'account_id': 2, 'contract_id': 3, 'currency_amount': Decimal('222.22'), 'currency_code': 'EUR', 'model_type': LEDGER_TYPES.ACCOUNT, }, { 'abacus_event_id': 1, 'account_id': 2, 'contract_id': 3, 'currency_code': 'EUR', 'remaining_amount': Decimal('0.0022222'), 'rounded_amount': Decimal('222.22'), 'model_type': LEDGER_TYPES.DEPOSIT, }, ] @pytest.fixture def mock_ledger_contract_advance_applied(): """Mock ledger_contract_advance_applied record.""" return { 'ledger_contract_advance_applied_id': 1, 'abacus_event_id': 1, 'account_id': 1, 'contract_id': 1, 'contract_advance_id': 1, 'statement_period_id': 300, 'worksheet_payment_contract_advance_id': 123, 'advance_amount': '-100.90', 'advance_currency_code': 'USD', 'advance_amount_payee_currency': '-150.66', 'advance_payee_currency_code': 'AUD', 'vat_amount': '-10.00', 'vat_amount_payee_currency': '-14.93', 'withholding_tax_amount': '10.00', 'withholding_tax_amount_payee_currency': '14.93', 'amount_after_withholding_and_vat': '-100.90', 'amount_after_withholding_and_vat_payee_currency': '-150.66', 'us_source_income_rate': '99', 'exchange_rate': '1.4931449890136719000', } @pytest.fixture def mock_ledger_vat_summary(): """Mock ledger_vat_summary response.""" return [ { 'ledger_vat_summary_id': 1, 'account_id': 1, 'contract_id': 1, 'statement_period_id': 420, 'vat_amount_payee_currency': '-123.45', 'payee_currency_code': 'GBP', }, { 'ledger_vat_summary_id': 2, 'account_id': 2, 'contract_id': 2, 'statement_period_id': 420, 'vat_amount_payee_currency': '-111.22', 'payee_currency_code': 'GBP', }, { 'ledger_vat_summary_id': 3, 'account_id': 1, 'contract_id': 1, 'statement_period_id': 420, 'vat_amount_payee_currency': '10.00', 'payee_currency_code': 'GBP', }, ] @pytest.fixture def mock_exchange_rates(): """Mock list of exchange_rates.""" return [ { 'exchange_rate_id': 1, 'from_currency_code': 'USD', 'to_currency_code': 'AUD', 'rate': '1.4931449890136719000', }, { 'exchange_rate_id': 2, 'from_currency_code': 'AUD', 'to_currency_code': 'USD', 'rate': '0.6698809266090393000', }, ] @pytest.fixture def mock_payment_group_payment_data(): """Mock payment group payment data response.""" return [ { 'account_id': 1, 'contract_id': 1, 'amount': 100.00, 'currency_code': 'USD', 'worksheet_account_contract_payable_after_tax_id': 1, }, { 'account_id': 2, 'contract_id': 2, 'amount': 200.00, 'currency_code': 'USD', 'worksheet_account_contract_payable_after_tax_id': 2, }, { 'account_id': 3, 'contract_id': 3, 'amount': 300.00, 'currency_code': 'USD', 'worksheet_account_contract_payable_after_tax_id': 3, }, ] @pytest.fixture def mock_custom_payment_data(): """Mock custom payment data.""" return { 'account_id': 123, 'contract_id': 456, 'currency_code': 'USD', 'amount_after_withholding_and_vat': '100.25', 'vat_amount': '20.5', 'withholding_tax_amount': '5.75', } @pytest.fixture def mock_commit_custom_payment_event(): """Mock commit_custom_payment event.""" return { 'abacus_event_id': 1, 'event_name': 'commit_custom_payment', 'target_type': 'worksheet_payment_custom', 'target_id': 123, } @pytest.fixture def mock_return_custom_payment_event(): """Mock return_custom_payment event.""" return { 'abacus_event_id': 1, 'event_name': 'return_custom_payment', 'target_type': 'worksheet_payment_custom', 'target_id': 123, } @pytest.fixture def mock_commit_vat_summary_custom_payment_event(): """Mock commit_vat_summary event.""" return { 'abacus_event_id': 1, 'event_name': 'commit_vat_summary', 'target_type': 'worksheet_payment_custom', 'target_id': 123, } @pytest.fixture def mock_return_vat_summary_custom_payment_event(): """Mock return_vat_summary event.""" return { 'abacus_event_id': 1, 'event_name': 'return_vat_summary', 'target_type': 'worksheet_payment_custom', 'target_id': 123, } @pytest.fixture def mock_commit_wht_custom_payment_event(): """Mock commit_withholding_tax event.""" return { 'abacus_event_id': 1, 'event_name': 'commit_withholding_tax', 'target_type': 'worksheet_payment_custom', 'target_id': 123, } @pytest.fixture def mock_return_wht_custom_payment_event(): """Mock return_withholding_tax event.""" return { 'abacus_event_id': 1, 'event_name': 'return_withholding_tax', 'target_type': 'worksheet_payment_custom', 'target_id': 123, }