Skip to content

Instantly share code, notes, and snippets.

@fike
Last active December 27, 2020 19:03
Show Gist options
  • Save fike/900141281182ce06441dc4b7a7d1f714 to your computer and use it in GitHub Desktop.
Save fike/900141281182ce06441dc4b7a7d1f714 to your computer and use it in GitHub Desktop.
Flask app.py file to show how to render a cookie. To see entire Flask code, go to https://github.com/fike/flask-pytest-cookie
from flask import Flask, render_template
from flask import make_response
from flask import request
import random
from datetime import datetime
import socket
from flask.globals import request
app = Flask(__name__)
def resp_html(rangenumbers, bgcolor, hostname):
resp = make_response(
render_template(
'index.html',
the_date=datetime.now(),
numbers=rangenumbers,
css_bg=bgcolor,
hostname=hostname))
return resp
@app.route("/")
def index():
rangenumbers = range(1,13)
bgcolor = random.choice( ['orange', 'green', 'purple'] )
cookie_color = request.cookies.get('color')
hostname = socket.gethostname()
if cookie_color is not None:
bgcolor = cookie_color
response = resp_html(rangenumbers, bgcolor, hostname)
else:
response = response = resp_html(rangenumbers, bgcolor, hostname)
response.set_cookie('color', bgcolor)
return response
if __name__ == '__main__':
app.run(use_reloader=True, debug=True)
body{
width: 90%;
margin: auto;
font-family: "Ubuntu";
}
.green {
background-color: greenyellow;
}
.orange {
background-color: orange;
}
.purple {
background-color: mediumpurple;
}
import re
def test_cookie(app, client):
del app
response = client.get("/")
assert response.status_code == 200
cookie_header = response.headers['Set-Cookie']
cookie_color = re.match('^color=(ligthgray|orange|purple)', cookie_header)
cookie_match = str(cookie_color.group(1))
print(cookie_match)
assert cookie_match in str(['ligthgray', 'orange', 'purple'])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment