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)
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_bad_request_if_websocket_missmatch( request_factory: object, context_class: object, is_websocket: bool, ) -> None: app = Quart(__name__) url_adapter = Mock() url_adapter.match.return_value = Rule('/', {'GET'}, 'index', is_websocket=is_websocket), {} app.create_url_adapter = lambda *_: url_adapter # type: ignore request_websocket = request_factory('GET', '/', CIMultiDict()) # type: ignore context_class(app, request_websocket) # type: ignore assert isinstance(request_websocket.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
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