summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pyramid/config/views.py16
-rw-r--r--pyramid/tests/test_config/test_views.py8
2 files changed, 16 insertions, 8 deletions
diff --git a/pyramid/config/views.py b/pyramid/config/views.py
index 7d0a5a971..f984e46f2 100644
--- a/pyramid/config/views.py
+++ b/pyramid/config/views.py
@@ -143,14 +143,14 @@ class ViewDeriver(object):
self.text_wrapped_view(view))))))))))
@wraps_view
def text_wrapped_view(self, view):
- # wraps the view and adds __text__ attribute
- # intended for instancemethods
- if hasattr(view, '__text__'):
- return view
- def text_wrapper(context, request):
- return view(context, request)
- text_wrapper.__text__ = ''
- return text_wrapper
+ if inspect.ismethod(view):
+ if hasattr(view, '__text__'):
+ return view
+ def text_wrapper(context, request):
+ return view(context, request)
+ text_wrapper.__text__ = ''
+ return text_wrapper
+ return view
@wraps_view
def mapped_view(self, view):
diff --git a/pyramid/tests/test_config/test_views.py b/pyramid/tests/test_config/test_views.py
index 7bfe174b7..13c00c2b6 100644
--- a/pyramid/tests/test_config/test_views.py
+++ b/pyramid/tests/test_config/test_views.py
@@ -218,6 +218,14 @@ class TestViewsConfigurationMixin(unittest.TestCase):
result = wrapper(None, None)
self.assertEqual(result, 'OK')
+ def test_add_view_as_instancemethod(self):
+ from pyramid.renderers import null_renderer
+ class View:
+ def index(self, context, request): pass
+ view = View()
+ config=self._makeOne(autocommit=True)
+ config.add_view(view=view.index, renderer=null_renderer)
+
def test_add_view_as_instance_requestonly(self):
from pyramid.renderers import null_renderer
class AView: