1
# Simple test suite for http/cookies.py
3
from test.support import run_unittest, run_doctest
5
from http import cookies
8
warnings.filterwarnings("ignore",
9
".* class is insecure.*",
12
class CookieTests(unittest.TestCase):
15
{ 'data': 'chips=ahoy; vienna=finger',
16
'dict': {'chips':'ahoy', 'vienna':'finger'},
17
'repr': "<SimpleCookie: chips='ahoy' vienna='finger'>",
18
'output': 'Set-Cookie: chips=ahoy\nSet-Cookie: vienna=finger',
21
{ 'data': 'keebler="E=mc2; L=\\"Loves\\"; fudge=\\012;"',
22
'dict': {'keebler' : 'E=mc2; L="Loves"; fudge=\012;'},
23
'repr': '''<SimpleCookie: keebler='E=mc2; L="Loves"; fudge=\\n;'>''',
24
'output': 'Set-Cookie: keebler="E=mc2; L=\\"Loves\\"; fudge=\\012;"',
27
# Check illegal cookies that have an '=' char in an unquoted value
28
{ 'data': 'keebler=E=mc2',
29
'dict': {'keebler' : 'E=mc2'},
30
'repr': "<SimpleCookie: keebler='E=mc2'>",
31
'output': 'Set-Cookie: keebler=E=mc2',
36
C = cookies.SimpleCookie()
38
self.assertEqual(repr(C), case['repr'])
39
self.assertEqual(C.output(sep='\n'), case['output'])
40
for k, v in sorted(case['dict'].items()):
41
self.assertEqual(C[k].value, v)
44
C = cookies.SimpleCookie()
45
C.load('Customer="WILE_E_COYOTE"; Version=1; Path=/acme')
47
self.assertEqual(C['Customer'].value, 'WILE_E_COYOTE')
48
self.assertEqual(C['Customer']['version'], '1')
49
self.assertEqual(C['Customer']['path'], '/acme')
51
self.assertEqual(C.output(['path']),
52
'Set-Cookie: Customer="WILE_E_COYOTE"; Path=/acme')
53
self.assertEqual(C.js_output(), """
54
<script type="text/javascript">
56
document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme; Version=1";
60
self.assertEqual(C.js_output(['path']), """
61
<script type="text/javascript">
63
document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme";
68
def test_quoted_meta(self):
69
# Try cookie with quoted meta-data
70
C = cookies.SimpleCookie()
71
C.load('Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"')
72
self.assertEqual(C['Customer'].value, 'WILE_E_COYOTE')
73
self.assertEqual(C['Customer']['version'], '1')
74
self.assertEqual(C['Customer']['path'], '/acme')
77
run_unittest(CookieTests)
80
if __name__ == '__main__':