"""Tests for base handlers.""" import json from unittest.mock import MagicMock, patch from owsresponse import response from collaborator.handlers import base as base_handlers from collaborator.utils.error import OwsError @patch("collaborator.handlers.base.g") def test_exception_handler(mock_g): """Verify exception_Handler returns 500 status code and json payload.""" message = ( "The server encountered an internal error " "and was unable to complete your request." ) mock_error = MagicMock() server_response = base_handlers.exception_handler(mock_error) mock_g.log.exception.assert_called_with(mock_error) # assert status code is 500 assert server_response.status_code == 500 # assert json payload response_message = json.loads(server_response.data.decode()) assert response_message["message"] == message assert response_message["code"] == response.error.ERROR_CODE_INTERNAL_ERROR @patch("collaborator.handlers.base.g") def test_ows_error_handler(mock_g): """Test exception handler with an OwsError exception.""" message = "Something went real bad" code = "something_bad" status_code = 418 mock_error = OwsError(message, code, status_code) server_response = base_handlers.ows_error_handler(mock_error) assert server_response.status_code == status_code response_message = json.loads(server_response.data.decode()) assert response_message["message"] == message assert response_message["code"] == code mock_g.log.exception.assert_called_with(mock_error)