from io import BytesIO from app import app from flask import Response, make_response, request def redirect(location, status=301): body = f""" 301 Moved

{status} Moved

The document has moved here. """ response = Response(response=body, status=status, mimetype="text/html") response.headers["Location"] = location return response @app.route("/very-verbose/redirect") def very_verbose_redirect(): return redirect(location="/very-verbose/redirected") @app.route("/very-verbose/redirected") def very_verbose_redirected(): return "Redirected." @app.route("/very-verbose/encoding/latin1") def very_verbose_encoding_latin1(): result = BytesIO() result.write(b"\x63\x61\x66\xe9") # café in ISO-8859-1 data = result.getvalue() resp = make_response(data) resp.content_type = "text/html; charset=ISO-8859-1" return resp @app.route("/very-verbose/compressed/brotli", methods=["GET", "POST"]) def very_verbose_compressed_brotli(): assert "br" in request.headers["Accept-Encoding"] result = BytesIO() result.write( b"\x21\x2c\x00\x04\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21\x03" ) data = result.getvalue() resp = make_response(data) resp.headers["Content-Encoding"] = "br" return resp @app.route("/very-verbose/cat") def very_verbose_cat(): with open("tests_ok/cat.jpg.br", "rb") as f: data = f.read() resp = make_response(data) resp.headers["Content-Type"] = "image/jpeg" return resp @app.route("/very-verbose/update-cat", methods=["POST"]) def very_verbose_update_cat(): upload = request.files["cat"] assert upload.filename == "cat.jpg" assert upload.content_type == "image/jpeg" return "" @app.route("/very-verbose/done") def very_verbose_done(): return "Done"