"""Unit tests for LedgerAccountContract logic.""" from datetime import datetime from decimal import Decimal from unittest.mock import patch from ledger.logic import ledger_account_contract as logic @patch('ledger.logic.ledger_account_contract.LedgerAccountContract') def test_get_payable_balance_by_account(mock_model): """Test logic for getting an account's payable balance.""" account_id = 123 mock_payable_balance = { 'account_id': account_id, 'currency_code': 'EUR', 'payable_balance': Decimal('3000.00'), } mock_model.get_payable_balance_by_account.return_value = mock_payable_balance res = logic.get_payable_balance_by_account(account_id) assert res.status == 200 assert res.message['account_id'] == mock_payable_balance['account_id'] assert res.message['currency_code'] == mock_payable_balance['currency_code'] assert res.message['payable_balance'] == str( mock_payable_balance['payable_balance'] ) mock_model.get_payable_balance_by_account.assert_called_once_with(account_id) @patch('ledger.logic.ledger_account_contract.LedgerAccountContract') def test_get_ledger_list_by_account_id( mock_ledger_account_contract_model, test_app_request ): """Test get_ledger_list_by_account_id function.""" account_id = 123 request_params = { 'event_names': 'send_payments,commit_royalties', 'limit': 10, 'offset': 0, } mock_ledger_items = [ { 'ledger_account_contract_id': 1, 'account_id': 123, 'accounting_period_id': 1, 'amount': '320260.99', 'contract_id': 44, 'currency_code': 'USD', 'date': datetime(2024, 5, 17), 'ending_balance': '320260.99', 'opening_balance': '0.00', 'statement_period_id': 265, 'transaction_type': 'accounting_run', } ] mock_ledger_account_contract_model.get_ledger_list_by_account_id.return_value = ( mock_ledger_items, 1, ) result = logic.get_ledger_list_by_account_id(account_id, request_params) mock_ledger_items[0]['date'] = '2024-05-17' assert result.status == 200 assert result.message['items'] == mock_ledger_items mock_ledger_account_contract_model.get_ledger_list_by_account_id.assert_called_once_with( account_id, **request_params )