Michael Merickel
2018-10-15 4d838f06d0e6d27e34b766fc5c34a8283ff31b38
commit | author | age
37d2c2 1 from pyramid.config import Configurator
CM 2 from pyramid.request import Request
3
0c29cf 4
37d2c2 5 def view_one(request):
CM 6     subreq = Request.blank('/view_two')
7259e7 7     response = request.invoke_subrequest(subreq, use_tweens=False)
37d2c2 8     return response
CM 9
0c29cf 10
37d2c2 11 def view_two(request):
0bee84 12     # check that request.foo is valid for a subrequest
MM 13     return 'This came from view_two, foo=%s' % (request.foo,)
0c29cf 14
37d2c2 15
7259e7 16 def view_three(request):
CM 17     subreq = Request.blank('/view_four')
f7462b 18     try:
CM 19         return request.invoke_subrequest(subreq, use_tweens=True)
4d838f 20     except Exception:  # pragma: no cover
f7462b 21         request.response.body = b'Value error raised'
CM 22         return request.response
7259e7 23
0c29cf 24
7259e7 25 def view_four(request):
CM 26     raise ValueError('foo')
0c29cf 27
7259e7 28
CM 29 def view_five(request):
30     subreq = Request.blank('/view_four')
31     try:
32         return request.invoke_subrequest(subreq, use_tweens=False)
33     except ValueError:
34         request.response.body = b'Value error raised'
35         return request.response
36
0c29cf 37
7259e7 38 def excview(request):
CM 39     request.response.status_int = 500
40     request.response.body = b'Bad stuff happened'
41     return request.response
0c29cf 42
7259e7 43
37d2c2 44 def main():
CM 45     config = Configurator()
46     config.add_route('one', '/view_one')
47     config.add_route('two', '/view_two')
7259e7 48     config.add_route('three', '/view_three')
CM 49     config.add_route('four', '/view_four')
50     config.add_route('five', '/view_five')
51     config.add_view(excview, context=Exception)
37d2c2 52     config.add_view(view_one, route_name='one')
5da21f 53     config.add_view(view_two, route_name='two', renderer='string')
7259e7 54     config.add_view(view_three, route_name='three')
CM 55     config.add_view(view_four, route_name='four')
56     config.add_view(view_five, route_name='five')
0bee84 57     config.add_request_method(lambda r: 'bar', 'foo', property=True)
37d2c2 58     return config