diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-06-03 21:04:21 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-06-03 21:04:21 +0000 |
| commit | 5fcd5fe8055ee3457bafacb2f4785661af02830a (patch) | |
| tree | 698cb8b8c0f47086a9b11868d4f937a6cf229f7b /nova/tests | |
| parent | d0cbff778838c16dbd449fc01ef84e1223327794 (diff) | |
| parent | bb36650f87dd4b30e9ebbbb4409444b4482338b5 (diff) | |
Merge "Adds ability to black/whitelist v3 API extensions"
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/api/openstack/compute/test_v3_extensions.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/nova/tests/api/openstack/compute/test_v3_extensions.py b/nova/tests/api/openstack/compute/test_v3_extensions.py new file mode 100644 index 000000000..f7c1bf39c --- /dev/null +++ b/nova/tests/api/openstack/compute/test_v3_extensions.py @@ -0,0 +1,72 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright 2013 IBM Corp. +# +# 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. + +from oslo.config import cfg + +from nova.api.openstack import compute +from nova.api.openstack.compute import plugins +from nova import test + +CONF = cfg.CONF + + +class fake_bad_extension(object): + name = "fake_bad_extension" + alias = "fake-bad" + + +class ExtensionLoadingTestCase(test.TestCase): + + def test_extensions_loaded(self): + app = compute.APIRouterV3() + self.assertIn('servers', app._loaded_extension_info.extensions) + + def test_check_bad_extension(self): + extension_info = plugins.LoadedExtensionInfo() + self.assertFalse(extension_info._check_extension(fake_bad_extension)) + + def test_extensions_blacklist(self): + app = compute.APIRouterV3() + self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions) + CONF.set_override('extensions_blacklist', 'os-fixed-ips', 'osapi_v3') + app = compute.APIRouterV3() + self.assertNotIn('os-fixed-ips', app._loaded_extension_info.extensions) + + def test_extensions_whitelist_accept(self): + app = compute.APIRouterV3() + self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions) + CONF.set_override('extensions_whitelist', 'servers,os-fixed-ips', + 'osapi_v3') + app = compute.APIRouterV3() + self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions) + + def test_extensions_whitelist_block(self): + app = compute.APIRouterV3() + self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions) + CONF.set_override('extensions_whitelist', 'servers', 'osapi_v3') + app = compute.APIRouterV3() + self.assertNotIn('os-fixed-ips', app._loaded_extension_info.extensions) + + def test_blacklist_overrides_whitelist(self): + app = compute.APIRouterV3() + self.assertIn('os-fixed-ips', app._loaded_extension_info.extensions) + CONF.set_override('extensions_whitelist', 'servers,os-fixed-ips', + 'osapi_v3') + CONF.set_override('extensions_blacklist', 'os-fixed-ips', 'osapi_v3') + app = compute.APIRouterV3() + self.assertNotIn('os-fixed-ips', app._loaded_extension_info.extensions) + self.assertIn('servers', app._loaded_extension_info.extensions) + self.assertEqual(len(app._loaded_extension_info.extensions), 1) |
