async def test_after_this_request() -> None: async with RequestContext( Quart(__name__), Request('GET', 'http', '/', CIMultiDict()), ) as context: after_this_request(lambda: 'hello') assert context._after_request_functions[0]() == 'hello'
async def test_has_request_context() -> None: async with RequestContext(Quart(__name__), Request('GET', 'http', '/', CIMultiDict())): assert has_request_context() is True assert has_app_context() is True assert has_request_context() is False assert has_app_context() is False
async def test_has_request_context() -> None: app = Quart(__name__) headers, path, query_string = make_test_headers_path_and_query_string(app, '/') async with RequestContext(Quart(__name__), Request('GET', 'http', path, query_string, headers)): assert has_request_context() is True assert has_app_context() is True assert has_request_context() is False assert has_app_context() is False
def test_bad_request_if_websocket_route() -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.return_value = Rule('/', {'GET'}, 'index', is_websocket=True), {} app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request('GET', 'http', '/', b'', CIMultiDict()) RequestContext(app, request) assert isinstance(request.routing_exception, BadRequest)
async def test_after_this_request() -> None: app = Quart(__name__) headers, path, query_string = make_test_headers_path_and_query_string(app, '/') async with RequestContext( Quart(__name__), Request('GET', 'http', path, query_string, headers), ) as context: after_this_request(lambda: 'hello') assert context._after_request_functions[0]() == 'hello'
def test_request_context_match() -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.return_value = ('Rule', {'arg': 'value'}) app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request('GET', '/', CIMultiDict(), None) RequestContext(app, request) assert request.url_rule == 'Rule' assert request.view_args == {'arg': 'value'}
def test_request_context_match() -> None: app = Quart(__name__) url_adapter = Mock() rule = Rule('/', ['GET'], 'index') url_adapter.match.return_value = (rule, {'arg': 'value'}) app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request('GET', 'http', '/', CIMultiDict()) RequestContext(app, request) assert request.url_rule == rule assert request.view_args == {'arg': 'value'}
def test_bad_request_if_websocket_route() -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.side_effect = BadRequest() app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request( "GET", "http", "/", b"", CIMultiDict(), "", "1.1", send_push_promise=no_op_push ) RequestContext(app, request) assert isinstance(request.routing_exception, BadRequest)
def test_request_context_matching_error( exception_type: Exception, exception_instance: Exception, ) -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.side_effect = exception_instance app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request('GET', 'http', '/', b'', CIMultiDict()) RequestContext(app, request) assert isinstance(request.routing_exception, exception_type) # type: ignore
async def test_has_request_context() -> None: app = Quart(__name__) headers, path, query_string = make_test_headers_path_and_query_string(app, "/") request = Request( "GET", "http", path, query_string, headers, "", "1.1", send_push_promise=no_op_push ) async with RequestContext(Quart(__name__), request): assert has_request_context() is True assert has_app_context() is True assert has_request_context() is False assert has_app_context() is False
async def test_after_this_request() -> None: app = Quart(__name__) headers, path, query_string = make_test_headers_path_and_query_string(app, "/") async with RequestContext( Quart(__name__), Request( "GET", "http", path, query_string, headers, "", "1.1", send_push_promise=no_op_push ), ) as context: after_this_request(lambda: "hello") assert context._after_request_functions[0]() == "hello"
def test_request_context_matching_error( exception_type: Exception, exception_instance: Exception ) -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.side_effect = exception_instance app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request( "GET", "http", "/", b"", CIMultiDict(), "", "1.1", send_push_promise=no_op_push ) RequestContext(app, request) assert isinstance(request.routing_exception, exception_type) # type: ignore
def test_request_context_match() -> None: app = Quart(__name__) url_adapter = Mock() rule = Rule("/", {"GET"}, "index") url_adapter.match.return_value = (rule, {"arg": "value"}) app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request( "GET", "http", "/", b"", CIMultiDict(), "", "1.1", send_push_promise=no_op_push ) RequestContext(app, request) assert request.url_rule == rule assert request.view_args == {"arg": "value"}
def test_bad_request_if_websocket_route(http_scope: HTTPScope) -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.side_effect = WBadRequest() app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request( "GET", "http", "/", b"", Headers([("host", "quart.com")]), "", "1.1", http_scope, send_push_promise=no_op_push, ) RequestContext(app, request) assert isinstance(request.routing_exception, BadRequest)
def test_request_context_match() -> None: app = Quart(__name__) url_adapter = Mock() rule = QuartRule("/", methods={"GET"}, endpoint="index") url_adapter.match.return_value = (rule, {"arg": "value"}) app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request( "GET", "http", "/", b"", Headers([("host", "quart.com")]), "", "1.1", send_push_promise=no_op_push, ) RequestContext(app, request) assert request.url_rule == rule assert request.view_args == {"arg": "value"}
def test_request_context_matching_error( exception_type: Exception, exception_instance: Exception, http_scope: HTTPScope, ) -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.side_effect = exception_instance app.create_url_adapter = lambda *_: url_adapter # type: ignore request = Request( "GET", "http", "/", b"", Headers([("host", "quart.com")]), "", "1.1", http_scope, send_push_promise=no_op_push, ) RequestContext(app, request) assert isinstance(request.routing_exception, exception_type) # type: ignore