Port cinder.utils.monkey_patch() to Python 3
On Python 3, unbound methods are regular functions: use pass inspect.isfunction to inspect.getmembers(). tox.ini: add test_utils to Python 3.4. Partial-Implements: blueprint cinder-python3 Change-Id: I4fe9936792a43aff301010780e86244bdf2d05de
This commit is contained in:
parent
5bc425235b
commit
ee14adec87
@ -389,12 +389,14 @@ def monkey_patch():
|
||||
# set the decorator for the class methods
|
||||
if isinstance(module_data[key], pyclbr.Class):
|
||||
clz = importutils.import_class("%s.%s" % (module, key))
|
||||
for method, func in inspect.getmembers(clz, inspect.ismethod):
|
||||
# On Python 3, unbound methods are regular functions
|
||||
predicate = inspect.isfunction if six.PY3 else inspect.ismethod
|
||||
for method, func in inspect.getmembers(clz, predicate):
|
||||
setattr(
|
||||
clz, method,
|
||||
decorator("%s.%s.%s" % (module, key, method), func))
|
||||
# set the decorator for the function
|
||||
if isinstance(module_data[key], pyclbr.Function):
|
||||
elif isinstance(module_data[key], pyclbr.Function):
|
||||
func = importutils.import_class("%s.%s" % (module, key))
|
||||
setattr(sys.modules[module], key,
|
||||
decorator("%s.%s" % (module, key), func))
|
||||
|
@ -103,6 +103,7 @@ cinder.tests.unit.test_ssh_utils
|
||||
cinder.tests.unit.test_test
|
||||
cinder.tests.unit.test_test_utils
|
||||
cinder.tests.unit.test_tintri
|
||||
cinder.tests.unit.test_utils
|
||||
cinder.tests.unit.test_v6000_common
|
||||
cinder.tests.unit.test_v6000_fcp
|
||||
cinder.tests.unit.test_v6000_iscsi
|
||||
|
Loading…
x
Reference in New Issue
Block a user