"""Unit tests for LedgerEntryQueue.""" from unittest.mock import MagicMock from reserves_release.ledger_entry_queue import LedgerEntryQueue def test_append_entries(): """Test append method appends entries.""" mock_post_method = MagicMock() ledger_entry_queue = LedgerEntryQueue(mock_post_method) assert not ledger_entry_queue._entries assert ledger_entry_queue._post_callable_function ledger_entry_queue.append({'foo': 'bar'}) assert ledger_entry_queue._entries def test_flush_entries(mock_ledger_account): """Test flush_entries method that calls POST endpoints and empties queue.""" mock_post_method = MagicMock() ledger_entry_queue = LedgerEntryQueue(mock_post_method) assert not ledger_entry_queue._entries assert ledger_entry_queue._post_callable_function mock_ledger_entries = mock_ledger_account ledger_entry_queue._post_callable_function.return_value = {'status': 201} for ledger_entry in mock_ledger_entries: ledger_entry_queue.append(ledger_entry) assert ledger_entry_queue._entries == mock_ledger_entries assert ledger_entry_queue.length == len(mock_ledger_entries) ledger_entry_queue.flush_entries() assert not ledger_entry_queue._entries ledger_entry_queue._post_callable_function.assert_called_once_with( mock_ledger_entries )