def raiser(req):
            class MyInvalidInput(exception.InvalidInput):
                message = msg_template

            ex = MyInvalidInput(reason=reason)
            raise wsgi.Fault(exception.ConvertedException(code=ex.code,
                                                          explanation=ex.msg))
Exemple #2
0
    def __exit__(self, ex_type, ex_value, ex_traceback):
        if not ex_value:
            return True

        if isinstance(ex_value, exception.NotAuthorized):
            raise Fault(webob.exc.HTTPForbidden(explanation=ex_value.msg))
        elif isinstance(ex_value, exception.Invalid):
            raise Fault(
                exception.ConvertedException(code=ex_value.code,
                                             explanation=ex_value.msg))
        elif isinstance(ex_value, TypeError):
            exc_info = (ex_type, ex_value, ex_traceback)
            LOG.error(_LE('Exception handling resource: %s'),
                      ex_value,
                      exc_info=exc_info)
            raise Fault(webob.exc.HTTPBadRequest())
        elif isinstance(ex_value, Fault):
            LOG.info(_LI("Fault thrown: %s"), ex_value)
            raise ex_value
        elif isinstance(ex_value, webob.exc.HTTPException):
            LOG.info(_LI("HTTP exception thrown: %s"), ex_value)
            raise Fault(ex_value)

        # We didn't handle the exception
        return False
Exemple #3
0
 def test_generic_status_code(self):
     with mock.patch.dict(webob.util.status_generic_reasons,
                          {5: 'generic_reason'}):
         exc = exception.ConvertedException(code=599)
         self.assertEqual('generic_reason', exc.title)
Exemple #4
0
 def test_standard_status_code(self):
     with mock.patch.dict(webob.util.status_reasons,
                          {http_client.OK: 'reason'}):
         exc = exception.ConvertedException(code=int(http_client.OK))
         self.assertEqual('reason', exc.title)
Exemple #5
0
 def test_default_args(self):
     exc = exception.ConvertedException()
     self.assertNotEqual('', exc.title)
     self.assertEqual(http_client.INTERNAL_SERVER_ERROR, exc.code)
     self.assertEqual('', exc.explanation)
Exemple #6
0
 def test_standard_status_code(self):
     with mock.patch.dict(webob.util.status_reasons, {200: 'reason'}):
         exc = exception.ConvertedException(code=200)
         self.assertEqual('reason', exc.title)
Exemple #7
0
 def test_default_args(self):
     exc = exception.ConvertedException()
     self.assertNotEqual('', exc.title)
     self.assertEqual(500, exc.code)
     self.assertEqual('', exc.explanation)