"""Tests for worksheet_account_contract_closing_balance repository.""" from datetime import datetime from payment.models.worksheet_account_contract_closing_balance import ( WorksheetAccountContractClosingBalance, ) from payment.repository.worksheet_account_contract_closing_balance import ( get_closing_balances_related_to_payment_accounts, ) from tests.utils.factories import ( PaymentGroupPaymentAccountDetailFactory, WorksheetAccountContractClosingBalanceFactory, WorksheetPayableBalanceAfterTaxFactory, ) def test_get_closing_balances_related_to_payment_accounts( mock_accounts, mock_contracts, mock_abacus_event, mock_ledger_account_contracts ): """Test get_closing_balances_related_to_payment_accounts.""" worksheet_closing_balance1 = WorksheetAccountContractClosingBalanceFactory.create( statement_period_id=1 ) worksheet_after_tax1 = WorksheetPayableBalanceAfterTaxFactory.create( # noqa worksheet_account_contract_closing_balance_id=worksheet_closing_balance1.worksheet_account_contract_closing_balance_id ) detail1 = PaymentGroupPaymentAccountDetailFactory.create( # noqa worksheet_account_contract_payable_after_tax_id=worksheet_after_tax1.worksheet_account_contract_payable_after_tax_id ) worksheet_closing_balance2 = WorksheetAccountContractClosingBalanceFactory.create( statement_period_id=2 ) worksheet_after_tax2 = WorksheetPayableBalanceAfterTaxFactory.create( # noqa worksheet_account_contract_closing_balance_id=worksheet_closing_balance2.worksheet_account_contract_closing_balance_id, deleted_at=datetime.now(), ) detail2 = PaymentGroupPaymentAccountDetailFactory.create( # noqa worksheet_account_contract_payable_after_tax_id=worksheet_after_tax2.worksheet_account_contract_payable_after_tax_id, deleted_at=datetime.now(), ) items = get_closing_balances_related_to_payment_accounts( [ detail1.payment_group_payment_account_id, detail2.payment_group_payment_account_id, ] ) assert len(items) == 1 assert ( items[0].payment_group_payment_account_id # noqa == detail1.payment_group_payment_account_id ) assert ( items[0].worksheet_account_contract_closing_balance_id == worksheet_closing_balance1.worksheet_account_contract_closing_balance_id ) for column in WorksheetAccountContractClosingBalance.__table__.columns: assert getattr(items[0], column.key) == getattr( worksheet_closing_balance1, column.key ), f'the field is not matching: {column.key}'