| # Simple test suite for Cookie.py | 
 |  | 
 | from test.test_support import run_unittest, run_doctest | 
 | import unittest | 
 | import Cookie | 
 |  | 
 | import warnings | 
 | warnings.filterwarnings("ignore", | 
 |                         ".* class is insecure.*", | 
 |                         DeprecationWarning) | 
 |  | 
 | class CookieTests(unittest.TestCase): | 
 |     # Currently this only tests SimpleCookie | 
 |     def test_basic(self): | 
 |         cases = [ | 
 |             { 'data': 'chips=ahoy; vienna=finger', | 
 |               'dict': {'chips':'ahoy', 'vienna':'finger'}, | 
 |               'repr': "<SimpleCookie: chips='ahoy' vienna='finger'>", | 
 |               'output': 'Set-Cookie: chips=ahoy\nSet-Cookie: vienna=finger', | 
 |             }, | 
 |  | 
 |             { 'data': 'keebler="E=mc2; L=\\"Loves\\"; fudge=\\012;"', | 
 |               'dict': {'keebler' : 'E=mc2; L="Loves"; fudge=\012;'}, | 
 |               'repr': '''<SimpleCookie: keebler='E=mc2; L="Loves"; fudge=\\n;'>''', | 
 |               'output': 'Set-Cookie: keebler="E=mc2; L=\\"Loves\\"; fudge=\\012;"', | 
 |             }, | 
 |  | 
 |             # Check illegal cookies that have an '=' char in an unquoted value | 
 |             { 'data': 'keebler=E=mc2', | 
 |               'dict': {'keebler' : 'E=mc2'}, | 
 |               'repr': "<SimpleCookie: keebler='E=mc2'>", | 
 |               'output': 'Set-Cookie: keebler=E=mc2', | 
 |             } | 
 |         ] | 
 |  | 
 |         for case in cases: | 
 |             C = Cookie.SimpleCookie() | 
 |             C.load(case['data']) | 
 |             self.assertEqual(repr(C), case['repr']) | 
 |             self.assertEqual(C.output(sep='\n'), case['output']) | 
 |             for k, v in sorted(case['dict'].items()): | 
 |                 self.assertEqual(C[k].value, v) | 
 |  | 
 |     def test_load(self): | 
 |         C = Cookie.SimpleCookie() | 
 |         C.load('Customer="WILE_E_COYOTE"; Version=1; Path=/acme') | 
 |  | 
 |         self.assertEqual(C['Customer'].value, 'WILE_E_COYOTE') | 
 |         self.assertEqual(C['Customer']['version'], '1') | 
 |         self.assertEqual(C['Customer']['path'], '/acme') | 
 |  | 
 |         self.assertEqual(C.output(['path']), | 
 |             'Set-Cookie: Customer="WILE_E_COYOTE"; Path=/acme') | 
 |         self.assertEqual(C.js_output(), """ | 
 |         <script type="text/javascript"> | 
 |         <!-- begin hiding | 
 |         document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme; Version=1"; | 
 |         // end hiding --> | 
 |         </script> | 
 |         """) | 
 |         self.assertEqual(C.js_output(['path']), """ | 
 |         <script type="text/javascript"> | 
 |         <!-- begin hiding | 
 |         document.cookie = "Customer="WILE_E_COYOTE"; Path=/acme"; | 
 |         // end hiding --> | 
 |         </script> | 
 |         """) | 
 |  | 
 |     def test_quoted_meta(self): | 
 |         # Try cookie with quoted meta-data | 
 |         C = Cookie.SimpleCookie() | 
 |         C.load('Customer="WILE_E_COYOTE"; Version="1"; Path="/acme"') | 
 |         self.assertEqual(C['Customer'].value, 'WILE_E_COYOTE') | 
 |         self.assertEqual(C['Customer']['version'], '1') | 
 |         self.assertEqual(C['Customer']['path'], '/acme') | 
 |  | 
 | def test_main(): | 
 |     run_unittest(CookieTests) | 
 |     run_doctest(Cookie) | 
 |  | 
 | if __name__ == '__main__': | 
 |     test_main() |