summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Szakmeister <john@szakmeister.net>2014-03-28 12:36:38 -0400
committerJohn Szakmeister <john@szakmeister.net>2014-03-28 12:49:48 -0400
commit0181572a64195a8fa1c6c867ae6c61a79a9606ca (patch)
treec35d55ac3cb08db176b93d9378404c97948a1059
parent4edec7237cf26cedae5871189c23a75d791ab975 (diff)
downloadnose-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.py9
-rw-r--r--unit_tests/test_utils.py3
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