1
# Simple test suite for Cookie.py
3
from test.test_support import run_unittest, run_doctest
8
warnings.filterwarnings("ignore",
9
".* class is insecure.*",
12
class CookieTests(unittest.TestCase):
13
# Currently this only tests SimpleCookie
16
{ 'data': 'chips=ahoy; vienna=finger',
17
'dict': {'chips':'ahoy', 'vienna':'finger'},
18
'repr': "<SimpleCookie: chips='ahoy' vienna='finger'>",
19
'output': 'Set-Cookie: chips=ahoy\nSet-Cookie: vienna=finger',
22
{ 'data': 'keebler="E=mc2; L=\\"Loves\\"; fudge=\\012;"',
23
'dict': {'keebler' : 'E=mc2; L="Loves"; fudge=\012;'},
24
'repr': '''<SimpleCookie: keebler='E=mc2; L="Loves"; fudge=\\n;'>''',
25
'output': 'Set-Cookie: keebler="E=mc2; L=\\"Loves\\"; fudge=\\012;"',
28
# Check illegal cookies that have an '=' char in an unquoted value
29
{ 'data': 'keebler=E=mc2',
30
'dict': {'keebler' : 'E=mc2'},
31
'repr': "<SimpleCookie: keebler='E=mc2'>",
32
'output': 'Set-Cookie: keebler=E=mc2',
37
C = Cookie.SimpleCookie()
39
self.assertEqual(repr(C), case['repr'])
40
self.assertEqual(C.output(sep='\n'), case['output'])
41
for k, v in sorted(case['dict'].iteritems()):
42
self.assertEqual(C[k].value, v)
45
C = Cookie.SimpleCookie()
46
C.load('Customer="WILE_E_COYOTE"; Version=1; Path=/acme')
48
self.assertEqual(C['Customer'].value, 'WILE_E_COYOTE')
49
self.assertEqual(C['Customer']['version'], '1')
50
self.assertEqual(C['Customer']['path'], '/acme')
52
self.assertEqual(C.output(['path']),
53
'Set-Cookie: Customer="WILE_E_COYOTE"; Path=/acme')
54
self.assertEqual(C.js_output(), """
55
<script type="text/javascript">
57
document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme; Version=1";
61
self.assertEqual(C.js_output(['path']), """
62
<script type="text/javascript">
64
document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme";
69
def test_quoted_meta(self):
70
# Try cookie with quoted meta-data
71
C = Cookie.SimpleCookie()
72
C.load('Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"')
73
self.assertEqual(C['Customer'].value, 'WILE_E_COYOTE')
74
self.assertEqual(C['Customer']['version'], '1')
75
self.assertEqual(C['Customer']['path'], '/acme')
78
run_unittest(CookieTests)
81
if __name__ == '__main__':