"""Test LedgerProcessor.""" from ledger_accounting_run_balance.ledger_entry_queue import LedgerEntryQueue from ledger_accounting_run_balance.ledger_processor import LedgerProcessor def test_ledger_processor_process_row(mock_event, mock_contracts, mock_results): """Test processing a row to insert into ledger_accounting_run_balance.""" mock_queue = LedgerEntryQueue(mock_event) processor = LedgerProcessor(1, mock_event, mock_queue) processor.process(mock_contracts[0]) assert processor._entries._entries == mock_results[0:1] def test_ledger_processor_rounding(mock_event, mock_contracts): """Test processor rounds amounts.""" mock_queue = LedgerEntryQueue(mock_event) processor = LedgerProcessor(1, mock_event, mock_queue) processor.process(mock_contracts[0]) entries = processor._entries._entries[0] keys = [ 'total_gross_revenue_amount', 'mechanical_deduction_total', 'mechanical_deduction_admin_fee_total', 'total_net_revenue_amount', 'distribution_fee', 'adjusted_net_revenue' ] amount_values = [val for key, val in entries.items() if val and key in keys] assert all([str(amount)[::-1].find('.') == 2 for amount in amount_values])