def test_exception(self): code_and_exception = { 400: webob.exc.HTTPBadRequest, 401: webob.exc.HTTPUnauthorized, 403: webob.exc.HTTPForbidden, 404: webob.exc.HTTPNotFound, 405: webob.exc.HTTPMethodNotAllowed, 406: webob.exc.HTTPNotAcceptable, 409: webob.exc.HTTPConflict, 413: webob.exc.HTTPRequestEntityTooLarge, 415: webob.exc.HTTPUnsupportedMediaType, 429: webob.exc.HTTPTooManyRequests, 501: webob.exc.HTTPNotImplemented, 503: webob.exc.HTTPServiceUnavailable, # Any other thing should be a 500 500: webob.exc.HTTPInternalServerError, 507: webob.exc.HTTPInternalServerError, } for code, exception in six.iteritems(code_and_exception): fault = self.get_fault(code) resp = fakes.create_fake_json_resp(fault, code) ret = helpers.exception_from_response(resp) self.assertIsInstance(ret, exception) self.assertEqual(fault["computeFault"]["message"], ret.explanation)
def run_action(self, req, action, net_id): """Run an action on a network. :param req: the incoming request :param action: the action to run :param net_id: server id to delete """ os_req = self._make_action_reques(req, action, id) response = os_req.get_response() if response.status_int != 202: raise helpers.exception_from_response(response)
def test_error_handling_exception(self): fault = {} resp = fakes.create_fake_json_resp(fault, 404) ret = helpers.exception_from_response(resp) self.assertIsInstance(ret, webob.exc.HTTPInternalServerError)