diff options
Diffstat (limited to 'pecan/tests/test_base.py')
-rw-r--r-- | pecan/tests/test_base.py | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/pecan/tests/test_base.py b/pecan/tests/test_base.py index 81471ec..89b7a43 100644 --- a/pecan/tests/test_base.py +++ b/pecan/tests/test_base.py @@ -14,8 +14,8 @@ from six import b as b_ from six.moves import cStringIO as StringIO from pecan import ( - Pecan, expose, request, response, redirect, abort, make_app, - override_template, render + Pecan, Request, Response, expose, request, response, redirect, + abort, make_app, override_template, render ) from pecan.templating import ( _builtin_renderers as builtin_renderers, error_formatters @@ -954,6 +954,41 @@ class TestManualResponse(PecanTestCase): assert r.body == b_('Hello, World!') +class TestCustomResponseandRequest(PecanTestCase): + + def test_custom_objects(self): + + class CustomRequest(Request): + + @property + def headers(self): + headers = super(CustomRequest, self).headers + headers['X-Custom-Request'] = 'ABC' + return headers + + class CustomResponse(Response): + + @property + def headers(self): + headers = super(CustomResponse, self).headers + headers['X-Custom-Response'] = 'XYZ' + return headers + + class RootController(object): + @expose() + def index(self): + return request.headers.get('X-Custom-Request') + + app = TestApp(Pecan( + RootController(), + request_cls=CustomRequest, + response_cls=CustomResponse + )) + r = app.get('/') + assert r.body == b_('ABC') + assert r.headers.get('X-Custom-Response') == 'XYZ' + + class TestThreadLocalState(PecanTestCase): def test_thread_local_dir(self): |