1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
import pytest
from falcon.request import Request
import falcon.testing as testing
class TestRequestContext:
def test_default_request_context(
self,
):
req = testing.create_req()
req.context.hello = 'World'
assert req.context.hello == 'World'
assert req.context['hello'] == 'World'
req.context['note'] = 'Default Request.context_type used to be dict.'
assert 'note' in req.context
assert hasattr(req.context, 'note')
assert req.context.get('note') == req.context['note']
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)
assert isinstance(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()
with pytest.raises(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)
assert isinstance(req.context, dict)
assert req.context['uri'] == req.uri
|