def test__exc_to_http_exc__HTTPException_no_server_error(self, LOGGER): exc = HTTPNotFound() http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIs(http_exc, exc) self.assertEqual(http_exc.code, 404) self.assertEqual(LOGGER.mock_calls, [ call.debug(ANY, exc, ANY, 404), ])
def test__exc_to_http_exc__HTTPException_server_error(self, LOGGER): exc = HTTPServerError() http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIs(http_exc, exc) self.assertEqual(http_exc.code, 500) self.assertEqual(LOGGER.mock_calls, [ call.error(ANY, exc, ANY, 500, exc_info=True), ])
def test__exc_to_http_exc__other_exception(self, LOGGER): exc = ZeroDivisionError http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPServerError) self.assertEqual(http_exc.code, 500) self.assertIs(http_exc.detail, None) # no detail self.assertEqual(LOGGER.mock_calls, [ call.error(ANY, exc, exc_info=True), ])
def test__exc_to_http_exc__other_DataAPIError_2(self, LOGGER): exc = DataAPIError() # no specific public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPServerError) self.assertEqual(http_exc.code, 500) self.assertIs(http_exc.detail, None) # *no* detail self.assertEqual(LOGGER.mock_calls, [ call.error(ANY, exc, ANY, exc_info=True), ])
def test__exc_to_http_exc__other_DataAPIError(self, LOGGER): exc = DataAPIError(public_message='FOO') # custom public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPServerError) self.assertEqual(http_exc.code, 500) self.assertEqual(http_exc.detail, 'FOO') # detail == custom public message self.assertEqual(LOGGER.mock_calls, [ call.error(ANY, exc, ANY, exc_info=True), ])
def test__exc_to_http_exc__ParamCleaningError(self, LOGGER): exc = ParamCleaningError(public_message='FOO') # custom public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPBadRequest) self.assertEqual(http_exc.code, 400) self.assertEqual(http_exc.detail, 'FOO') # detail == custom public message self.assertEqual(LOGGER.mock_calls, [ call.debug(ANY, exc, ANY), ])
def test__exc_to_http_exc__TooMuchDataError(self, LOGGER): exc = TooMuchDataError(public_message='FOO') # custom public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPForbidden) self.assertEqual(http_exc.code, 403) self.assertEqual(http_exc.detail, 'FOO') # detail == custom public message self.assertEqual(LOGGER.mock_calls, [ call.debug(ANY, exc, ANY), ])
def test__exc_to_http_exc__ParamCleaningError_2(self, LOGGER): exc = ParamCleaningError() # no specific public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPBadRequest) self.assertEqual(http_exc.code, 400) self.assertEqual(http_exc.detail, # detail == default public message ParamCleaningError.default_public_message) self.assertEqual(LOGGER.mock_calls, [ call.debug(ANY, exc, ANY), ])
def test__exc_to_http_exc__TooMuchDataError_2(self, LOGGER): exc = TooMuchDataError() # no specific public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPForbidden) self.assertEqual(http_exc.code, 403) self.assertEqual(http_exc.detail, # detail == default public message TooMuchDataError.default_public_message) self.assertEqual(LOGGER.mock_calls, [ call.debug(ANY, exc, ANY), ])
def test__exc_to_http_exc__ParamCleaningError_2(self, LOGGER): exc = ParamCleaningError() # no specific public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPBadRequest) self.assertEqual(http_exc.code, 400) self.assertEqual( http_exc.detail, # detail == default public message ParamCleaningError.default_public_message) self.assertEqual(LOGGER.mock_calls, [ call.debug(ANY, exc, ANY), ])
def test__exc_to_http_exc__TooMuchDataError_2(self, LOGGER): exc = TooMuchDataError() # no specific public message http_exc = ConfigHelper.exc_to_http_exc(exc) self.assertIsInstance(http_exc, HTTPForbidden) self.assertEqual(http_exc.code, 403) self.assertEqual( http_exc.detail, # detail == default public message TooMuchDataError.default_public_message) self.assertEqual(LOGGER.mock_calls, [ call.debug(ANY, exc, ANY), ])