| | |
| | | import os |
| | | import unittest |
| | | from zope.interface import implementer |
| | | |
| | | from pyramid import testing |
| | | |
| | | from . import IDummy |
| | | |
| | | from . import dummy_view |
| | | |
| | | from pyramid.compat import im_func, text_ |
| | | from pyramid.exceptions import ConfigurationError |
| | | from pyramid.exceptions import ConfigurationExecutionError |
| | | from pyramid.exceptions import ConfigurationConflictError |
| | | from pyramid.interfaces import IResponse, IRequest, IMultiView |
| | | |
| | | from . import IDummy |
| | | from . import dummy_view |
| | | |
| | | |
| | | class TestViewsConfigurationMixin(unittest.TestCase): |
| | |
| | | def view(context, request): |
| | | return 'OK' |
| | | |
| | | def view2(context, request): |
| | | def view2(context, request): # pragma: no cover |
| | | return 'OK2' |
| | | |
| | | def view3(context, request): |
| | |
| | | def view(context, request): |
| | | return 'OK' |
| | | |
| | | def view2(context, request): |
| | | def view2(context, request): # pragma: no cover |
| | | return 'OK2' |
| | | |
| | | def view3(context, request): |
| | |
| | | def __init__(self, request): |
| | | pass |
| | | |
| | | def unknown(context, request): |
| | | def unknown(context, request): # pragma: no cover |
| | | return 'unknown' |
| | | |
| | | def view(context, request): |
| | |
| | | def __init__(self, request): |
| | | pass |
| | | |
| | | def unknown(context, request): |
| | | def unknown(context, request): # pragma: no cover |
| | | return 'unknown' |
| | | |
| | | def view(context, request): |
| | |
| | | from pyramid.exceptions import BadCSRFToken |
| | | from pyramid.renderers import null_renderer |
| | | |
| | | def view(request): |
| | | def view(request): # pragma: no cover |
| | | return 'OK' |
| | | |
| | | config = self._makeOne(autocommit=True) |
| | |
| | | |
| | | def test_add_view_class_method_no_attr(self): |
| | | from pyramid.renderers import null_renderer |
| | | from zope.interface import directlyProvides |
| | | from pyramid.exceptions import ConfigurationError |
| | | |
| | | config = self._makeOne(autocommit=True) |
| | | |
| | | class DummyViewClass(object): |
| | | def run(self): |
| | | def run(self): # pragma: no cover |
| | | pass |
| | | |
| | | def configure_view(): |
| | |
| | | config = self._makeOne(autocommit=True) |
| | | config.add_route('foo', '/foo/') |
| | | |
| | | def view(request): |
| | | def view(request): # pragma: no cover |
| | | return Response('OK') |
| | | |
| | | config.add_notfound_view( |
| | |
| | | config = self._makeOne(autocommit=True) |
| | | config.add_route('foo', '/foo/') |
| | | |
| | | def view(request): |
| | | def view(request): # pragma: no cover |
| | | return Response('OK') |
| | | |
| | | config.add_notfound_view( |
| | |
| | | def view1(context, request): |
| | | return 'OK' |
| | | |
| | | def view2(context, request): |
| | | def view2(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | result_view = self._makeOne(view1, view2) |
| | |
| | | self.assertEqual(result, 'OK') |
| | | |
| | | def test_call_dispatches_on_exception(self): |
| | | def view1(context, request): |
| | | def view1(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | def view2(context, request): |
| | |
| | | self.assertEqual(result, 'OK') |
| | | |
| | | def test_permitted(self): |
| | | def errfn(context, request): |
| | | def errfn(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | def view1(context, request): |
| | | def view1(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | view1.__permitted__ = lambda c, r: 'OK' |
| | | |
| | | def view2(context, request): |
| | | def view2(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | view2.__permitted__ = errfn |
| | |
| | | self.assertEqual(result, 'OK') |
| | | |
| | | def test_permitted_dispatches_on_exception(self): |
| | | def errfn(context, request): |
| | | def errfn(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | def view1(context, request): |
| | | def view1(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | view1.__permitted__ = errfn |
| | | |
| | | def view2(context, request): |
| | | def view2(context, request): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | view2.__permitted__ = lambda c, r: 'OK' |
| | |
| | | return requestonly(view, attr=attr) |
| | | |
| | | def test_defaults(self): |
| | | def aview(request, a=1, b=2): |
| | | def aview(request, a=1, b=2): # pragma: no cover |
| | | pass |
| | | |
| | | self.assertTrue(self._callFUT(aview)) |
| | | |
| | | def test_otherattr(self): |
| | | class AView(object): |
| | | def __init__(self, request, a=1, b=2): |
| | | def __init__(self, request, a=1, b=2): # pragma: no cover |
| | | pass |
| | | |
| | | def bleh(self): |
| | | def bleh(self): # pragma: no cover |
| | | pass |
| | | |
| | | self.assertTrue(self._callFUT(AView, 'bleh')) |
| | |
| | | def test_add_with_phash_override_accept(self): |
| | | mv = self._makeOne() |
| | | |
| | | def view1(): |
| | | def view1(): # pragma: no cover |
| | | pass |
| | | |
| | | def view2(): |
| | | def view2(): # pragma: no cover |
| | | pass |
| | | |
| | | def view3(): |
| | | def view3(): # pragma: no cover |
| | | pass |
| | | |
| | | mv.add(view1, 100, accept='text/html', phash='abc') |
| | |
| | | def test_add_with_phash_override_accept2(self): |
| | | mv = self._makeOne() |
| | | |
| | | def view1(): |
| | | def view1(): # pragma: no cover |
| | | pass |
| | | |
| | | def view2(): |
| | | def view2(): # pragma: no cover |
| | | pass |
| | | |
| | | def view3(): |
| | | def view3(): # pragma: no cover |
| | | pass |
| | | |
| | | mv.add(view1, 100, accept='text/html', phash='abc') |
| | |
| | | # this failed on py3 at one point, because functions aren't orderable |
| | | # and we were sorting the views via a plain sort() rather than |
| | | # sort(key=itemgetter(0)). |
| | | def view1(request): |
| | | def view1(request): # pragma: no cover |
| | | pass |
| | | |
| | | def view2(request): |
| | | def view2(request): # pragma: no cover |
| | | pass |
| | | |
| | | mv = self._makeOne() |
| | |
| | | self.assertTrue(result is view) |
| | | |
| | | def test_it_different_with_existing_original_view(self): |
| | | def view1(context, request): |
| | | def view1(context, request): # pragma: no cover |
| | | pass |
| | | |
| | | view1.__original_view__ = 'abc' |
| | | |
| | | def view2(context, request): |
| | | def view2(context, request): # pragma: no cover |
| | | pass |
| | | |
| | | result = self._callFUT(view1, view2) |
| | |
| | | self.assertTrue(called[0]) |
| | | |
| | | def test_generate_url_cachebust_nomatch(self): |
| | | def fake_cb(*a, **kw): |
| | | def fake_cb(*a, **kw): # pragma: no cover |
| | | raise AssertionError |
| | | |
| | | inst = self._makeOne() |
| | |
| | | return view_description(view) |
| | | |
| | | def test_with_text(self): |
| | | def view(): |
| | | def view(): # pragma: no cover |
| | | pass |
| | | |
| | | view.__text__ = 'some text' |
| | |
| | | self.assertEqual(result, 'some text') |
| | | |
| | | def test_without_text(self): |
| | | def view(): |
| | | def view(): # pragma: no cover |
| | | pass |
| | | |
| | | result = self._callFUT(view) |
| | |
| | | |
| | | def queryUtility(self, type_or_iface, name=None, default=None): |
| | | return self.utility or default |
| | | |
| | | |
| | | from zope.interface import implementer |
| | | from pyramid.interfaces import IResponse, IRequest |
| | | |
| | | |
| | | @implementer(IResponse) |
| | |
| | | |
| | | def introspectable(self, *arg): |
| | | return {} |
| | | |
| | | |
| | | from zope.interface import implementer |
| | | from pyramid.interfaces import IMultiView |
| | | |
| | | |
| | | @implementer(IMultiView) |