diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2015-03-18 16:03:40 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-03-18 16:03:40 (GMT) |
commit | 6c32585f677b71eb1206852d24f077f602780c85 (patch) | |
tree | 3204be9816cea9229172587a5c81dc4041a82d92 /Lib/test/test_http_cookies.py | |
parent | cb7e5f6f087057570682c961666fb60dae688bc5 (diff) | |
download | cpython-6c32585f677b71eb1206852d24f077f602780c85.zip cpython-6c32585f677b71eb1206852d24f077f602780c85.tar.gz cpython-6c32585f677b71eb1206852d24f077f602780c85.tar.bz2 |
Restored backward compatibility of pickling http.cookies.Morsel. It was
broken after converting instance attributes to properies in issue #2211.
Diffstat (limited to 'Lib/test/test_http_cookies.py')
-rw-r--r-- | Lib/test/test_http_cookies.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/Lib/test/test_http_cookies.py b/Lib/test/test_http_cookies.py index 7665b15..5f1e74b 100644 --- a/Lib/test/test_http_cookies.py +++ b/Lib/test/test_http_cookies.py @@ -1,5 +1,6 @@ # Simple test suite for http/cookies.py +import copy from test.support import run_unittest, run_doctest, check_warnings import unittest from http import cookies @@ -325,6 +326,11 @@ class MorselTests(unittest.TestCase): self.assertIsNot(morsel_a, morsel_b) self.assertEqual(morsel_a, morsel_b) + morsel_b = copy.copy(morsel_a) + self.assertIsInstance(morsel_b, cookies.Morsel) + self.assertIsNot(morsel_a, morsel_b) + self.assertEqual(morsel_a, morsel_b) + def test_setitem(self): morsel = cookies.Morsel() morsel['expires'] = 0 @@ -383,6 +389,20 @@ class MorselTests(unittest.TestCase): self.assertRaises(TypeError, morsel.update) self.assertRaises(TypeError, morsel.update, 0) + def test_pickle(self): + morsel_a = cookies.Morsel() + morsel_a.set('foo', 'bar', 'baz') + morsel_a.update({ + 'version': 2, + 'comment': 'foo', + }) + for proto in range(pickle.HIGHEST_PROTOCOL + 1): + with self.subTest(proto=proto): + morsel_b = pickle.loads(pickle.dumps(morsel_a, proto)) + self.assertIsInstance(morsel_b, cookies.Morsel) + self.assertEqual(morsel_b, morsel_a) + self.assertEqual(str(morsel_b), str(morsel_a)) + def test_repr(self): morsel = cookies.Morsel() self.assertEqual(repr(morsel), '<Morsel: None=None>') |