diff options
| -rw-r--r-- | pyramid/config/views.py | 5 | ||||
| -rw-r--r-- | pyramid/tests/test_config/test_views.py | 7 |
2 files changed, 9 insertions, 3 deletions
diff --git a/pyramid/config/views.py b/pyramid/config/views.py index 0d29d4331..3da41861d 100644 --- a/pyramid/config/views.py +++ b/pyramid/config/views.py @@ -416,7 +416,7 @@ class DefaultViewMapper(object): def requestonly(view, attr=None): if attr is None: attr = '__call__' - if inspect.isfunction(view): + if inspect.isroutine(view): fn = view elif inspect.isclass(view): try: @@ -436,8 +436,7 @@ def requestonly(view, attr=None): args = argspec[0] - if hasattr(fn, 'im_func'): - # it's an instance method + if inspect.ismethod(fn): if not args: return False args = args[1:] diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py index be5143d45..f4e69f4e1 100644 --- a/pyramid/tests/test_config/test_views.py +++ b/pyramid/tests/test_config/test_views.py @@ -1763,6 +1763,13 @@ class Test_requestonly(unittest.TestCase): class Foo: pass foo = Foo() self.assertFalse(self._callFUT(foo)) + + def test_method_onearg_named_request(self): + class Foo: + def method(self, request): + """ """ + foo = Foo() + self.assertTrue(self._callFUT(foo.method)) class Test_isexception(unittest.TestCase): def _callFUT(self, ob): |
