"""Functional tests for ledger reserve release schedule endpoints.""" from tests.functional.conftest import insert_mock_data def _insert_mock_data(): insert_mock_data({ 'account': {'account_id': 24601}, 'statement_period': [ {'statement_period_id': 123, 'statement_period_name': 'Taken'}, {'statement_period_id': 124, 'statement_period_name': 'Middle'}, {'statement_period_id': 125, 'statement_period_name': 'Released'}, ], 'abacus_event': [ {'abacus_event_id': 1}, {'abacus_event_id': 2}, ], 'run_controller': {'run_controller_id': 1}, 'accounting_period': { 'accounting_period_id': 1, 'statement_period_id': 123, }, 'accounting_run': { 'accounting_run_id': 1, 'accounting_period_id': 1, 'run_controller_id': 1, }, 'reference_payment_entity': {'reference_payment_entity_id': 1}, 'reference_sap_profit_center': { 'reference_sap_profit_center_id': 1, 'profit_center': 'UK1234', 'company_code': '1234', 'business_group': 'ORC' }, 'reference_signing_entity': { 'reference_signing_entity_id': 1, 'reference_payment_entity_id': 1, 'reference_sap_profit_center_id': 1, 'company_code': '1234', 'tax_entity_company_code': '1234', 'legal_name': 'Company', 'vat_number': '12341234', 'company_registration_number': '12341234', 'address': None, }, 'contract': { 'contract_id': 1001, 'reference_signing_entity_id': 1, }, 'contract_reserve': { 'contract_reserve_id': 1, 'contract_id': 1001, }, 'ledger_reserve_taken': { 'ledger_reserve_taken_id': 1, 'statement_period_id': 123, 'abacus_event_id': 1, 'contract_reserve_id': 1, 'accounting_run_id': 1, 'reserve_amount': 0, }, 'ledger_reserve_release_schedule': [ { 'ledger_reserve_release_schedule_id': 1, 'abacus_event_id': 1, 'account_id': 24601, 'taken_statement_period_id': 123, 'release_statement_period_id': 124, 'ledger_reserve_taken_id': 1, 'currency_code': 'USD', 'installment_amount': -100, 'outstanding_amount_after_installment': 100, }, { 'ledger_reserve_release_schedule_id': 2, 'abacus_event_id': 2, 'account_id': 24601, 'taken_statement_period_id': 123, 'release_statement_period_id': 125, 'ledger_reserve_taken_id': 1, 'currency_code': 'USD', 'installment_amount': -200, 'outstanding_amount_after_installment': 0, }, ], 'ledger_reserve_release': { 'ledger_reserve_release_id': 1, 'ledger_reserve_release_schedule_id': 1, 'abacus_event_id': 1, 'statement_period_id': 124, 'installment_amount': 100, } }) def test_get_ledger_reserve_release_schedules_by_account_id(fixture_client): """Test getting reserve release schedules.""" _insert_mock_data() account_id = 24601 statement_period_id = 124 result = fixture_client.get( f'/reserve-release-schedules/account/{account_id}/statement-period/{statement_period_id}') assert result.status_code == 200 assert result.json() == [ { 'abacus_event_id': 1, 'account_id': 24601, 'contract_id': 1001, 'currency_code': 'USD', 'current_period_reserve_total': -100.00, 'early_release_date': None, 'ledger_reserve_taken_id': 1, 'liquidation_end_period_id': 125, 'liquidation_end_period_name': 'Released', 'liquidation_start_period_id': 124, 'liquidation_start_period_name': 'Middle', 'prior_period_reserve_total': 0, 'reserve_total': -0.00, 'reserves_remaining': -100.00, 'taken_statement_period_id': 123, 'taken_statement_period_name': 'Taken', }, ]