"""Test logging errors.""" from unittest.mock import patch import pytest from payments_posted.error_handling import _raise_service_error from payments_posted.error_handling import OwsServiceException from payments_posted.error_handling import raise_ledger_error from payments_posted.error_handling import raise_payment_error @patch('payments_posted.error_handling._raise_service_error') def test_raise_ledger_error_post(mock_service_error): """Test raising an error when making a POST request to ows-ledger fails.""" data = { 'model_type': 'deposit', 'ledger_type': 'credit', 'abacus_event_id': 1, 'contract_id': 1, 'payee_id': 2, 'currency_code': 'USD', 'rounded_amount': '178762.00', 'remaining_amount': '0.00' } error_msg = 'ERROR from POST /ledger/bulk' mock_service_error.return_value = None raise_ledger_error(error_msg, data=data) mock_service_error.assert_called_once_with( error_msg, 'ows-ledger', data=data) @patch('payments_posted.error_handling._raise_service_error') def test_raise_payment_error_get(mock_service_error): """Test raising an error when making a GET request to ows-payment fails.""" error_msg = 'ERROR to GET /payment/path/' mock_service_error.return_value = None raise_payment_error(error_msg) mock_service_error.assert_called_once_with(error_msg, 'ows-payment') def test_raise_service_error(): """Test _raise_service_error logs error and raises exception.""" data = { 'target_id': 2, } error_msg = 'ERROR to GET /service/path/' service = 'ows-service' with pytest.raises(OwsServiceException) as e: _raise_service_error(error_msg, service, **data) assert f'POST to {service} failed' in str(e.value) def test_raise_service_error_no_kwargs(): """Test _raise_service_error logs error and raises exception without kwargs.""" error_msg = 'ERROR to GET /service/path/id/' service = 'ows-service' with pytest.raises(OwsServiceException) as e: _raise_service_error(error_msg, service) assert f'{service} failure: {error_msg}' in str(e.value)