def test_resource_not_authorized(self): class Controller(object): def index(self, req): raise exception.NotAuthorized() req = webob.Request.blank('/tests') app = fakes.TestRouter(Controller()) response = req.get_response(app) self.assertEqual(403, response.status_int)
def test_resource_call(self): class Controller(object): def index(self, req): return 'off' req = webob.Request.blank('/tests') app = fakes.TestRouter(Controller()) response = req.get_response(app) self.assertEqual(six.b('off'), response.body) self.assertEqual(200, response.status_int)
def test_versions_version_not_found(self): api_version_request_3_0 = api_version_request.APIVersionRequest('3.0') self.mock_object(api_version_request, 'max_api_version', mock.Mock(return_value=api_version_request_3_0)) class Controller(wsgi.Controller): @wsgi.Controller.api_version('2.0', '2.0') def index(self, req): return 'off' req = fakes.HTTPRequest.blank('/tests', base_url='http://localhost/v2') req.headers = {version_header_name: '2.5'} app = fakes.TestRouter(Controller()) response = req.get_response(app) self.assertEqual(404, response.status_int)
def test_req_version_matches_with_None_None(self): version_request = api_version_request.APIVersionRequest('2.39') self.mock_object(api_version_request, 'max_api_version', mock.Mock(return_value=version_request)) class Controller(wsgi.Controller): def index(self, req): req_version = req.api_version_request # This case is artificial, and will return True if req_version.matches(None, None): return "Pass" req = fakes.HTTPRequest.blank('/tests', base_url='http://localhost/v2') req.headers = {version_header_name: '2.39'} app = fakes.TestRouter(Controller()) response = req.get_response(app) resp = encodeutils.safe_decode(response.body, incoming='utf-8') self.assertEqual("Pass", resp) self.assertEqual(200, response.status_int)
def test_req_version_matches(self, version, HTTP_ret): version_request = api_version_request.APIVersionRequest(version) self.mock_object(api_version_request, 'max_api_version', mock.Mock(return_value=version_request)) class Controller(wsgi.Controller): @wsgi.Controller.api_version('2.0', '2.6') def index(self, req): return 'off' req = fakes.HTTPRequest.blank('/tests', base_url='http://localhost/v2') req.headers = {version_header_name: version} app = fakes.TestRouter(Controller()) response = req.get_response(app) if HTTP_ret == 200: self.assertEqual(b'off', response.body) elif HTTP_ret == 404: self.assertNotEqual(b'off', response.body) self.assertEqual(HTTP_ret, response.status_int)
def test_req_version_matches_with_None(self, version, ret_val): version_request = api_version_request.APIVersionRequest(version) self.mock_object(api_version_request, 'max_api_version', mock.Mock(return_value=version_request)) class Controller(wsgi.Controller): def index(self, req): req_version = req.api_version_request if req_version.matches(None, '2.8'): return 'older' if req_version.matches('2.9', None): return 'newer' req = fakes.HTTPRequest.blank('/tests', base_url='http://localhost/v2') req.headers = {version_header_name: version} app = fakes.TestRouter(Controller()) response = req.get_response(app) resp = encodeutils.safe_decode(response.body, incoming='utf-8') self.assertEqual(ret_val, resp) self.assertEqual(200, response.status_int)
def setUp(self): super(ExperimentalAPITestCase, self).setUp() self.app = fakes.TestRouter(ExperimentalAPITestCase.Controller()) self.req = fakes.HTTPRequest.blank('/tests', base_url='http://localhost/v2')