"""Unit tests for Ledger Adjustment logic.""" from unittest.mock import patch from ledger.logic import ledger_adjustment as logic from tests.utils.factories import LedgerAdjustmentDetailFactory, LedgerAdjustmentFactory @patch('ledger.logic.ledger_adjustment.validate_pagination_params') @patch('ledger.logic.ledger_adjustment.LedgerAdjustment') def test_get_pending_ledger_adjustments_by_statement_period_id( mock_model, mock_validation, mock_event_fixtures ): """Test getting_ledger_adjustments by statement_period_id logic.""" statement_period_id = 1 detail = LedgerAdjustmentDetailFactory.build() ledger_adjustments = [ LedgerAdjustmentFactory.build(details=[detail]), LedgerAdjustmentFactory.build(), ] request_params = {'limit': 25, 'offset': 0} mock_model.get_pending_by_statement_period_id.return_value = ( ledger_adjustments, len(ledger_adjustments), ) mock_validation.return_value = request_params res = logic.get_pending_ledger_adjustments_by_statement_period_id( statement_period_id, request_params ) assert res.status == 200 assert res.message.get('items') assert res.message.get('total_count') == len(ledger_adjustments) assert len(res.message['items'][0]['details']) == 1 assert len(res.message['items'][1]['details']) == 0 mock_validation.assert_called_once_with(25, 0) mock_model.get_pending_by_statement_period_id.assert_called_once_with( statement_period_id, **request_params ) @patch('ledger.logic.ledger_adjustment.LedgerAdjustment') def test_get_ledger_adjustments(mock_model, mock_event_fixtures): """Test get_ledger_adjustments function.""" ledger_adjustments = LedgerAdjustmentFactory.create_batch(5) request_params = {'limit': 25, 'offset': 0} mock_model.get_ledger_adjustments.return_value = ( ledger_adjustments, len(ledger_adjustments), ) res = logic.get_ledger_adjustments(request_params) assert res.status == 200 assert res.message.get('items') assert res.message.get('total_count') == 5 mock_model.get_ledger_adjustments.assert_called_once_with(**request_params)