"""LedgerEntryQueue unit tests.""" from unittest.mock import MagicMock from correction_apply.ledger_entry_queue import LedgerEntryQueue def test_append_ledger_entries(): """Test append method.""" ledger_entry_queue = LedgerEntryQueue() assert not ledger_entry_queue._ledger_entries ledger_entry_queue.append({'foo': 'bar'}) assert ledger_entry_queue._ledger_entries == [{'foo': 'bar'}] def test_flush_entries( mock_ledger_account_contract, mock_ledger_deposit ): """Test flush entries calls to post ledger entries and empties queue.""" ledger_entry_queue = LedgerEntryQueue() assert not ledger_entry_queue._ledger_entries mock_post_entries = MagicMock(return_value={'status': 201}) mock_ledger_entries = [mock_ledger_account_contract, mock_ledger_deposit] for ledger_entry in mock_ledger_entries: ledger_entry_queue.append(ledger_entry) assert ledger_entry_queue._ledger_entries == mock_ledger_entries assert ledger_entry_queue.length == len(mock_ledger_entries) ledger_entry_queue.flush_entries(mock_post_entries) assert not ledger_entry_queue._ledger_entries mock_post_entries.assert_called_once_with(mock_ledger_entries)