"""LedgerEntryQueue unit tests.""" from unittest.mock import patch from payoneer_payments_payout.ledger_entry_queue import LedgerEntryQueue def test_append_ledger_entries(): """Test append_ledger_entry method.""" ledger_entry_queue = LedgerEntryQueue() assert not ledger_entry_queue._ledger_entries ledger_entry_queue.append_ledger_entry({'foo': 'bar'}) assert ledger_entry_queue._ledger_entries def test_extend_ledger_entries(): """Test extend_ledger_entries method.""" ledger_entry_queue = LedgerEntryQueue() assert not ledger_entry_queue._ledger_entries ledger_entry_queue.append_ledger_entry({'a': '1'}) assert ledger_entry_queue._ledger_entries assert len(ledger_entry_queue._ledger_entries) == 1 ledger_entry_queue.extend_ledger_entries([{'b': 2}, {'c': 3}]) assert len(ledger_entry_queue._ledger_entries) == 3 @patch('payoneer_payments_payout.ledger_entry_queue.debit_ledger') def test_flush_entries(mock_debit_ledger): """Test flush entries calls debit_ledger and empties queue.""" # noqa: E501 ledger_entry_queue = LedgerEntryQueue() assert not ledger_entry_queue._ledger_entries ledger_entry_queue.extend_ledger_entries(mock_debit_ledger) assert ledger_entry_queue.length == len(mock_debit_ledger) ledger_entry_queue.flush_entries() assert not ledger_entry_queue._ledger_entries