https://github.com/nose-devs/nose/commit/0181572a64195a8fa1c6c867ae6c61a79a9606ca.diff diff --git a/nose/util.py b/nose/util.py index dcb5fef..e612696 100644 --- a/nose/util.py +++ b/nose/util.py @@ -447,11 +447,10 @@ def try_run(obj, names): if func is not None: if type(obj) == types.ModuleType: # py.test compatibility - try: - args, varargs, varkw, defaults = inspect.getargspec(func) - if hasattr(func, '__call__') and ismethod(func.__call__): - args.pop(0) - except TypeError: + if isinstance(func, types.FunctionType): + args, varargs, varkw, defaults = \ + inspect.getargspec(func) + else: # Not a function. If it's callable, call it anyway if hasattr(func, '__call__'): func = func.__call__ diff --git a/unit_tests/test_utils.py b/unit_tests/test_utils.py index 2bd837c..cd9ba6e 100644 --- a/unit_tests/test_utils.py +++ b/unit_tests/test_utils.py @@ -1,4 +1,5 @@ import os +import sys import unittest import nose from nose import case @@ -168,7 +169,7 @@ def __call__(self): class Bar_m: def __call__(self, mod): pass - + foo = imp.new_module('foo') foo.bar = bar foo.bar_m = bar_m