diff options
| author | Melanie Witt <melwitt@yahoo-inc.com> | 2013-05-17 02:13:22 +0000 |
|---|---|---|
| committer | Melanie Witt <melwitt@yahoo-inc.com> | 2013-05-24 20:03:05 +0000 |
| commit | acaf9f83abe37a41a687936bb03f20cc183e5aaa (patch) | |
| tree | 6d81dedf0c61aeaee836cfe747bbb0100ee0e313 /nova/tests | |
| parent | f56d3e13eba566f6c262a96e1a967b596d54b0e4 (diff) | |
| download | nova-acaf9f83abe37a41a687936bb03f20cc183e5aaa.tar.gz nova-acaf9f83abe37a41a687936bb03f20cc183e5aaa.tar.xz nova-acaf9f83abe37a41a687936bb03f20cc183e5aaa.zip | |
removes project_id/tenant_id from v3 api urls
Adds a new APIMapper for V3 that doesn't prefix every
url with the project_id/tenant_id.
Partially implements blueprint v3-api-remove-project-id.
Change-Id: I547a94e2db0dd967852b3cb8532dd0adb11e693b
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/api/openstack/fakes.py | 5 | ||||
| -rw-r--r-- | nova/tests/api/openstack/test_mapper.py | 48 |
2 files changed, 51 insertions, 2 deletions
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py index d05a35f71..2316093c2 100644 --- a/nova/tests/api/openstack/fakes.py +++ b/nova/tests/api/openstack/fakes.py @@ -311,8 +311,9 @@ class HTTPRequest(os_wsgi.Request): class TestRouter(wsgi.Router): - def __init__(self, controller): - mapper = routes.Mapper() + def __init__(self, controller, mapper=None): + if not mapper: + mapper = routes.Mapper() mapper.resource("test", "tests", controller=os_wsgi.Resource(controller)) super(TestRouter, self).__init__(mapper) diff --git a/nova/tests/api/openstack/test_mapper.py b/nova/tests/api/openstack/test_mapper.py new file mode 100644 index 000000000..8b7e60d18 --- /dev/null +++ b/nova/tests/api/openstack/test_mapper.py @@ -0,0 +1,48 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2013 OpenStack Foundation +# All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import webob + +from nova.api import openstack as openstack_api +from nova import test +from nova.tests.api.openstack import fakes + + +class MapperTest(test.TestCase): + def test_resource_project_prefix(self): + class Controller(object): + def index(self, req): + return 'foo' + + app = fakes.TestRouter(Controller(), + openstack_api.ProjectMapper()) + req = webob.Request.blank('/1234/tests') + resp = req.get_response(app) + self.assertEqual(resp.body, 'foo') + self.assertEqual(resp.status_int, 200) + + def test_resource_no_project_prefix(self): + class Controller(object): + def index(self, req): + return 'foo' + + app = fakes.TestRouter(Controller(), + openstack_api.PlainMapper()) + req = webob.Request.blank('/tests') + resp = req.get_response(app) + self.assertEqual(resp.body, 'foo') + self.assertEqual(resp.status_int, 200) |
