Remove import of 'imp' module
Use importlib.util module instead of imp, since it's being deprecated: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses Had to change test setup to call super() first to get around a config issue I was seeing locally, causing the entire class of tests to fail: oslo_config.cfg.NoSuchOptError: no such option api_extensions_path in group [DEFAULT] Closes-bug: #1981077 Change-Id: Ic171028a661c3f9f83f6758a57aaeab4450aa907
This commit is contained in:
parent
8ab5ee1d17
commit
357ee21d12
|
@ -14,7 +14,7 @@
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
import imp
|
from importlib import util as imp_util
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from keystoneauth1 import loading as ks_loading
|
from keystoneauth1 import loading as ks_loading
|
||||||
|
@ -451,7 +451,9 @@ class ExtensionManager(object):
|
||||||
mod_name, file_ext = os.path.splitext(os.path.split(f)[-1])
|
mod_name, file_ext = os.path.splitext(os.path.split(f)[-1])
|
||||||
ext_path = os.path.join(path, f)
|
ext_path = os.path.join(path, f)
|
||||||
if file_ext.lower() == '.py' and not mod_name.startswith('_'):
|
if file_ext.lower() == '.py' and not mod_name.startswith('_'):
|
||||||
mod = imp.load_source(mod_name, ext_path)
|
spec = imp_util.spec_from_file_location(mod_name, ext_path)
|
||||||
|
mod = imp_util.module_from_spec(spec)
|
||||||
|
spec.loader.exec_module(mod)
|
||||||
ext_name = mod_name.capitalize()
|
ext_name = mod_name.capitalize()
|
||||||
new_ext_class = getattr(mod, ext_name, None)
|
new_ext_class = getattr(mod, ext_name, None)
|
||||||
if not new_ext_class:
|
if not new_ext_class:
|
||||||
|
|
|
@ -102,8 +102,8 @@ class FakePluginWithExtension(service_base.ServicePluginBase):
|
||||||
class ExtensionPathTest(base.BaseTestCase):
|
class ExtensionPathTest(base.BaseTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.base_path = extensions.get_extensions_path()
|
|
||||||
super(ExtensionPathTest, self).setUp()
|
super(ExtensionPathTest, self).setUp()
|
||||||
|
self.base_path = extensions.get_extensions_path()
|
||||||
|
|
||||||
def test_get_extensions_path_with_plugins(self):
|
def test_get_extensions_path_with_plugins(self):
|
||||||
cfg.CONF.set_override('api_extensions_path',
|
cfg.CONF.set_override('api_extensions_path',
|
||||||
|
|
|
@ -134,6 +134,21 @@ class TestMaintenancePlugin(test_securitygroup.SecurityGroupTestPlugin,
|
||||||
sgag_def.ALIAS]
|
sgag_def.ALIAS]
|
||||||
|
|
||||||
|
|
||||||
|
# Needed to extend resources for revision number tests, this is the
|
||||||
|
# least invasive way
|
||||||
|
class TestExtensionManager(extensions.PluginAwareExtensionManager):
|
||||||
|
|
||||||
|
def get_resources(self):
|
||||||
|
resources = super(TestExtensionManager, self).get_resources()
|
||||||
|
sg_ext_mgr = test_securitygroup.SecurityGroupTestExtensionManager
|
||||||
|
sg_resources = sg_ext_mgr.get_resources(self)
|
||||||
|
sg_resources_collection_names = [
|
||||||
|
res.collection for res in sg_resources]
|
||||||
|
resources = [r for r in resources
|
||||||
|
if r.collection not in sg_resources_collection_names]
|
||||||
|
return resources + sg_resources
|
||||||
|
|
||||||
|
|
||||||
class TestRevisionNumberMaintenance(test_securitygroup.SecurityGroupsTestCase,
|
class TestRevisionNumberMaintenance(test_securitygroup.SecurityGroupsTestCase,
|
||||||
test_l3.L3NatTestCaseMixin):
|
test_l3.L3NatTestCaseMixin):
|
||||||
|
|
||||||
|
@ -141,13 +156,13 @@ class TestRevisionNumberMaintenance(test_securitygroup.SecurityGroupsTestCase,
|
||||||
service_plugins = {
|
service_plugins = {
|
||||||
'router':
|
'router':
|
||||||
'neutron.tests.unit.extensions.test_l3.TestL3NatServicePlugin'}
|
'neutron.tests.unit.extensions.test_l3.TestL3NatServicePlugin'}
|
||||||
|
super(TestRevisionNumberMaintenance, self).setUp(
|
||||||
|
plugin=PLUGIN_CLASS, service_plugins=service_plugins)
|
||||||
l3_plugin = test_l3.TestL3NatServicePlugin()
|
l3_plugin = test_l3.TestL3NatServicePlugin()
|
||||||
sec_plugin = test_securitygroup.SecurityGroupTestPlugin()
|
sec_plugin = test_securitygroup.SecurityGroupTestPlugin()
|
||||||
ext_mgr = extensions.PluginAwareExtensionManager(
|
ext_mgr = TestExtensionManager(
|
||||||
EXTENSIONS_PATH, {'router': l3_plugin, 'sec': sec_plugin}
|
EXTENSIONS_PATH, {'router': l3_plugin, 'sec': sec_plugin}
|
||||||
)
|
)
|
||||||
super(TestRevisionNumberMaintenance, self).setUp(
|
|
||||||
plugin=PLUGIN_CLASS, service_plugins=service_plugins)
|
|
||||||
app = config.load_paste_app('extensions_test_app')
|
app = config.load_paste_app('extensions_test_app')
|
||||||
self.ext_api = extensions.ExtensionMiddleware(app, ext_mgr=ext_mgr)
|
self.ext_api = extensions.ExtensionMiddleware(app, ext_mgr=ext_mgr)
|
||||||
self.session = db_api.get_writer_session()
|
self.session = db_api.get_writer_session()
|
||||||
|
|
Loading…
Reference in New Issue