"""Test ows-ledger requests.""" from unittest.mock import MagicMock, patch from owsrequest.flask_request import flaskify from owsresponse import response import pytest from accounting_period_close import ows_ledger from accounting_period_close.constants import GET_LEDGER_ENTRIES_MSG SERVICE = 'ows-ledger' @patch('accounting_period_close.ows_ledger.app_logger') @patch('accounting_period_close.ows_ledger._request') def test_get_ledger_payees_by_acc_period_id( mock_request, mock_logger, mock_ledger_payees ): """Test successfully get ledger payees from ows-ledger.""" accounting_period_id = 1 limit = 1 offset = 0 mock_response = MagicMock() mock_response.json.return_value = mock_ledger_payees mock_response.status_code = 200 mock_request.return_value = mock_response res = ows_ledger.get_ledger_payees_by_acc_period_id( accounting_period_id, offset, limit) assert res == mock_ledger_payees mock_request.assert_called_once_with( f'/ledger-payee/accounting-period/{accounting_period_id}/payees?limit={limit}&offset={offset}' # noqa: E501 ) mock_logger.info.assert_called_once_with( GET_LEDGER_ENTRIES_MSG.format(accounting_period_id) ) @patch('accounting_period_close.ows_ledger.app_logger') @patch('accounting_period_close.ows_ledger._request') def test_get_ledger_payees_by_acc_period_id_failure(mock_request, mock_logger): """Test failure getting ledger payees raises an exception.""" accounting_period_id = 123 mock_response = response.create_error_response( code='error', message='Error Msg', status=400 ) mock_request.return_value = flaskify(mock_response) with pytest.raises(ows_ledger.OwsLedgerException) as e: ows_ledger.get_ledger_payees_by_acc_period_id(accounting_period_id, 0, 1) assert f'GET /ledger-payee/accounting-period/{accounting_period_id}/payees failed' == str(e.value) # noqa: E501 mock_request.assert_called_once() mock_logger.info.assert_called_once()