"""LegerEntryQueue unit tests.""" from unittest.mock import patch from commit_ledger_account_contract.ledger_entry_queue import LedgerEntryQueue def test_append(): """Test appending ledger_entries to queue.""" ledger_entry_queue = LedgerEntryQueue() assert not ledger_entry_queue._ledger_entries ledger_entry_queue.append({'foo': 'bar'}) assert ledger_entry_queue._ledger_entries @patch('commit_ledger_account_contract.ledger_entry_queue.create_ledger_entries') @patch('commit_ledger_account_contract.ledger_entry_queue.app_logger') def test_flush_entries( mock_logger, mock_create_ledger_entries, mock_bulk_ledger_post_body ): """Test method calls create_ledger_entries and empties queue.""" mock_create_ledger_entries.return_value = {'status': 201} mock_ledger_account, mock_ledger_deposit = mock_bulk_ledger_post_body ledger_entry_queue = LedgerEntryQueue() assert not ledger_entry_queue._ledger_entries ledger_entry_queue.append(mock_ledger_account) ledger_entry_queue.append(mock_ledger_deposit) assert ledger_entry_queue._ledger_entries == mock_bulk_ledger_post_body assert ledger_entry_queue.length == len(mock_bulk_ledger_post_body) ledger_entry_queue.flush_entries() assert not ledger_entry_queue._ledger_entries mock_logger.info.assert_called_once_with( f'Sending: {[mock_ledger_account, mock_ledger_deposit]}' ) mock_create_ledger_entries.assert_called_once_with(mock_bulk_ledger_post_body)