diff --git a/tests/typing/typing_route.py b/tests/typing/typing_route.py new file mode 100644 index 00000000..0cb45333 --- /dev/null +++ b/tests/typing/typing_route.py @@ -0,0 +1,53 @@ +from http import HTTPStatus +from typing import Tuple +from typing import Union + +from flask import Flask +from flask import jsonify +from flask.templating import render_template +from flask.views import View +from flask.wrappers import Response + + +app = Flask(__name__) + + +@app.route("/") +def hello_world() -> str: + return "
Hello, World!
" + + +@app.route("/json") +def hello_world_json() -> Response: + return jsonify({"response": "Hello, World!"}) + + +@app.route("/template") +@app.route("/template/Sorry, we are having problems
", HTTPStatus.INTERNAL_SERVER_ERROR + + +@app.before_request +def before_request() -> None: + app.logger.debug("Executing a sample before_request function") + return None + + +class RenderTemplateView(View): + def __init__(self: "RenderTemplateView", template_name: str) -> None: + self.template_name = template_name + + def dispatch_request(self: "RenderTemplateView") -> str: + return render_template(self.template_name) + + +app.add_url_rule( + "/about", + view_func=RenderTemplateView.as_view("about_page", template_name="about.html"), +)