"""Ledger Contract Advance Applied logic tests.""" from decimal import Decimal from unittest.mock import patch from moneyhub.logic import ledger_contract_advance_applied as logic @patch('moneyhub.logic.ledger_contract_advance_applied.models') def test_get_by_account_and_statement_period(mock_models): """Test get_by_account_and_statement_period method.""" advance_items = [{ 'ledger_contract_advance_applied_id': 3, 'advance_id': '3', 'abacus_event_id': 3588, 'account_id': 33089, 'contract_id': 590849, 'contract_advance_id': 106, 'created_at': '2022-09-26', 'statement_period_id': 286, 'advance_amount': Decimal('-50.50'), 'advance_currency_code': 'AUD', 'advance_amount_payee_currency': Decimal('-50.50'), 'advance_payee_currency_code': 'AUD', 'advance_description': 'A little pocket money for your troubles' }, { 'ledger_contract_advance_applied_id': 5, 'advance_id': '5', 'abacus_event_id': 3589, 'account_id': 33089, 'contract_id': 590849, 'contract_advance_id': 107, 'created_at': '2022-09-26', 'statement_period_id': 286, 'advance_amount': Decimal('-123489.50'), 'advance_currency_code': 'AUD', 'advance_amount_payee_currency': Decimal('-123489.50'), 'advance_payee_currency_code': 'AUD', 'advance_description': 'A little pocket money for your troubles' }] expected_response = [{ 'ledger_contract_advance_applied_id': 3, 'advance_id': '3', 'abacus_event_id': 3588, 'account_id': 33089, 'contract_id': 590849, 'contract_advance_id': 106, 'created_at': '2022-09-26', 'statement_period_id': 286, 'advance_amount': Decimal('-50.50'), 'advance_currency_code': 'AUD', 'advance_amount_payee_currency': Decimal('-50.50'), 'advance_payee_currency_code': 'AUD', 'advance_description': 'A little pocket money for your troubles' }, { 'ledger_contract_advance_applied_id': 5, 'advance_id': '5', 'abacus_event_id': 3589, 'account_id': 33089, 'contract_id': 590849, 'contract_advance_id': 107, 'created_at': '2022-09-26', 'statement_period_id': 286, 'advance_amount': Decimal('-123489.50'), 'advance_currency_code': 'AUD', 'advance_amount_payee_currency': Decimal('-123489.50'), 'advance_payee_currency_code': 'AUD', 'advance_description': 'A little pocket money for your troubles' }] mock_models.LedgerContractAdvanceApplied.get_by_account_and_statement_periods.return_value = \ advance_items res = logic.get_by_account_and_statement_periods(33089, [286], 590849,) assert res == expected_response mock_models.LedgerContractAdvanceApplied.get_by_account_and_statement_periods.\ assert_called_once_with(33089, [286], 590849)