Files
deb-python-falcon/tests/test_request_context.py
maresp 5ce3528077 fix(Request): context_type function raises AttributeError
Moving the instantiation of Request context to the end of
Request.__init__, so that all Request properties are set up
and accessible from within a context_type function.

Fixes #567
2015-10-19 15:05:41 -05:00

48 lines
1.4 KiB
Python

import falcon.testing as testing
from falcon.request import Request
class TestRequestContext(testing.TestBase):
def test_default_request_context(self):
env = testing.create_environ()
req = Request(env)
self.assertIsInstance(req.context, dict)
def test_custom_request_context(self):
# Define a Request-alike with a custom context type
class MyCustomContextType():
pass
class MyCustomRequest(Request):
context_type = MyCustomContextType
env = testing.create_environ()
req = MyCustomRequest(env)
self.assertIsInstance(req.context, MyCustomContextType)
def test_custom_request_context_failure(self):
# Define a Request-alike with a non-callable custom context type
class MyCustomRequest(Request):
context_type = False
env = testing.create_environ()
self.assertRaises(TypeError, MyCustomRequest, env)
def test_custom_request_context_request_access(self):
def create_context(req):
return {'uri': req.uri}
# Define a Request-alike with a custom context type
class MyCustomRequest(Request):
context_type = create_context
env = testing.create_environ()
req = MyCustomRequest(env)
self.assertIsInstance(req.context, dict)
self.assertEqual(req.context['uri'], req.uri)