def test_morsel_to_cookie(self): from time import strftime, localtime time_template = "%a, %d-%b-%Y %H:%M:%S GMT" m = Morsel() m['domain'] = ".yandex" m['domain'] = ".yandex.ru" m['path'] = "/" m['expires'] = "Fri, 27-Aug-2021 17:43:25 GMT" m.key = "dj2enbdj3w" m.value = "fvjlrwnlkjnf" c = morsel_to_cookie(m) self.assertEquals(m.key, c.name) self.assertEquals(m.value, c.value) for x in ('expires', 'path', 'comment', 'domain', 'secure', 'version'): if x == 'expires': self.assertEquals(m[x], strftime(time_template, localtime(getattr(c, x, None)))) elif x == 'version': self.assertTrue(isinstance(getattr(c, x, None), int)) else: self.assertEquals(m[x], getattr(c, x, None))
def test_morsel_to_cookie(self): from time import strftime, localtime time_template = "%a, %d-%b-%Y %H:%M:%S GMT" m = Morsel() m['domain'] = ".yandex" m['domain'] = ".yandex.ru" m['path'] = "/" m['expires'] = "Fri, 27-Aug-2021 17:43:25 GMT" m.key = "dj2enbdj3w" m.value = "fvjlrwnlkjnf" c = morsel_to_cookie(m) self.assertEqual(m.key, c.name) self.assertEqual(m.value, c.value) for x in ('expires', 'path', 'comment', 'domain', 'secure', 'version'): if x == 'expires': self.assertEqual( m[x], strftime(time_template, localtime(getattr(c, x, None)))) elif x == 'version': self.assertTrue(isinstance(getattr(c, x, None), int)) else: self.assertEqual(m[x], getattr(c, x, None))
#!/usr/bin/env python3 import cgi import os import datetime from http.cookies import SimpleCookie, Morsel cookie_ = SimpleCookie(os.environ["HTTP_COOKIE"]) expiration = datetime.datetime.now() + datetime.timedelta(days=30) morsel = Morsel() morsel.key = "visits" morsel.value = "0" visits = int(cookie_.get("visits", morsel).value) + 1 cookie_["visits"] = str(visits) date_format = "%a, %d-%b-%Y %H:%M:%S %Z" cookie_["visits"]["expires"] = expiration.strftime(date_format) print("Content-type: text/html") print(cookie_.output(), "\n") print("<html><head><title>Cookies</title></head>") print("<body>") print("<h1>Cookie Example</h1>") print("<b>The Following header was sent:<br />", cookie_.output(), "</b><br/>") print("<div><h3># of visits: ", visits, "</h3></div><hr />") print("</body></html>")
<div><input type='submit' value="Delete All Cookies" /></div> </form> """ show_bgcolor_form = True cookie_ = SimpleCookie(os.environ["HTTP_COOKIE"]) fields = cgi.FieldStorage() if "bgcolor" in fields: bgcolor = fields['bgcolor'] cookie_["bgcolor"] = bgcolor show_bgcolor_form = False default = "" expiration = datetime.datetime.now() + datetime.timedelta(days=30) m1 = Morsel() m1.key="visits" m1.value="1" visits = int(cookie_.get("visits", m1).value) + 1 m2 = Morsel() m2.key="bgcolor" m2.value="#DDDDDD" bgcolor = cookie_.get("bgcolor", m2).value cookie_["visits"] = str(visits) cookie_["visits"]["expires"] = expiration.strftime("%a, %d-%b-%Y %H:%M:%S PST") cookie_["bgcolor"] = fields.getvalue('bgcolor', "inherit") styles = "body {{ background:{} }}".format(bgcolor) print("Content-type: text/html") print(cookie_.output(), "\n")