"""Unit tests for LedgerReserveReleaseProcessor .""" from decimal import Decimal from unittest.mock import MagicMock from reserves_release.ledger_entry_queue import LedgerEntryQueue from reserves_release.ledger_reserve_release_processor import \ LedgerReserveReleaseProcessor def test_format_ledger_reserve_release_entry( mock_event, mock_ledger_reserve_release_schedule ): """Test formatting ledger_reserve_release params.""" mock_post_function = MagicMock() entry_queue = LedgerEntryQueue(mock_post_function) mock_release_schedule = mock_ledger_reserve_release_schedule[0] processor = LedgerReserveReleaseProcessor(mock_event, entry_queue) res = processor._format_ledger_reserve_release_entry(mock_release_schedule) assert res == { 'abacus_event_id': mock_event['abacus_event_id'], 'installment_amount': str(-1 * Decimal(mock_release_schedule['installment_amount'])), 'ledger_reserve_release_schedule_id': mock_release_schedule['ledger_reserve_release_schedule_id'], 'statement_period_id': mock_event['target_id'] } def test_process_ledger_reserve_release( mock_event, mock_ledger_reserve_release_schedule ): """Test ledger_reserve_release processor's main process method that queues entries.""" # noqa: E501 mock_post_function = MagicMock() entry_queue = LedgerEntryQueue(mock_post_function) mock_release_schedule = mock_ledger_reserve_release_schedule[0] processor = LedgerReserveReleaseProcessor(mock_event, entry_queue) processor.process(mock_release_schedule) assert processor._entry_queue.length == 1 assert processor._entry_queue._entries == [{ 'abacus_event_id': 1, 'installment_amount': '1500.11', 'ledger_reserve_release_schedule_id': 1, 'statement_period_id': '270' }]