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