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
|
# set the decorator for the class methods
|
||||||
if isinstance(module_data[key], pyclbr.Class):
|
if isinstance(module_data[key], pyclbr.Class):
|
||||||
clz = importutils.import_class("%s.%s" % (module, key))
|
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(
|
setattr(
|
||||||
clz, method,
|
clz, method,
|
||||||
decorator("%s.%s.%s" % (module, key, method), func))
|
decorator("%s.%s.%s" % (module, key, method), func))
|
||||||
# set the decorator for the function
|
# 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))
|
func = importutils.import_class("%s.%s" % (module, key))
|
||||||
setattr(sys.modules[module], key,
|
setattr(sys.modules[module], key,
|
||||||
decorator("%s.%s" % (module, key), func))
|
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
|
||||||
cinder.tests.unit.test_test_utils
|
cinder.tests.unit.test_test_utils
|
||||||
cinder.tests.unit.test_tintri
|
cinder.tests.unit.test_tintri
|
||||||
|
cinder.tests.unit.test_utils
|
||||||
cinder.tests.unit.test_v6000_common
|
cinder.tests.unit.test_v6000_common
|
||||||
cinder.tests.unit.test_v6000_fcp
|
cinder.tests.unit.test_v6000_fcp
|
||||||
cinder.tests.unit.test_v6000_iscsi
|
cinder.tests.unit.test_v6000_iscsi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user