diff options
author | John Szakmeister <john@szakmeister.net> | 2014-03-28 12:36:38 -0400 |
---|---|---|
committer | John Szakmeister <john@szakmeister.net> | 2014-03-28 12:49:48 -0400 |
commit | 0181572a64195a8fa1c6c867ae6c61a79a9606ca (patch) | |
tree | c35d55ac3cb08db176b93d9378404c97948a1059 | |
parent | 4edec7237cf26cedae5871189c23a75d791ab975 (diff) | |
download | nose-0181572a64195a8fa1c6c867ae6c61a79a9606ca.tar.gz |
Fix try_run on pypy.
This is a continuation of the fix started in 192694ed for issue #783.
Pypy didn't like the tactic taken, so let's be a little more direct
about it. We're expecting a function, and if we don't get it then we
want to look at the `__call__()` attribute.
-rw-r--r-- | nose/util.py | 9 | ||||
-rw-r--r-- | unit_tests/test_utils.py | 3 |
2 files changed, 6 insertions, 6 deletions
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 @@ class TestUtils(unittest.TestCase): class Bar_m: def __call__(self, mod): pass - + foo = imp.new_module('foo') foo.bar = bar foo.bar_m = bar_m |