diff options
author | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2010-06-23 21:40:15 (GMT) |
---|---|---|
committer | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2010-06-23 21:40:15 (GMT) |
commit | 1b7046b99e2369175c19532a788e722daf7c65f0 (patch) | |
tree | fe4097e8e160a3dfd81cee18ff946e25733f60f9 /Lib | |
parent | b7e10100968af7e4c56543e45eced93e75448d27 (diff) | |
download | cpython-1b7046b99e2369175c19532a788e722daf7c65f0.zip cpython-1b7046b99e2369175c19532a788e722daf7c65f0.tar.gz cpython-1b7046b99e2369175c19532a788e722daf7c65f0.tar.bz2 |
Issue #9051: Instances of timezone class can now be pickled.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_datetime.py | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/Lib/test/test_datetime.py b/Lib/test/test_datetime.py index b86c020..7048a11 100644 --- a/Lib/test/test_datetime.py +++ b/Lib/test/test_datetime.py @@ -19,8 +19,8 @@ from datetime import timezone from datetime import date, datetime import time as _time -pickle_choices = [(pickle, pickle, proto) for proto in range(3)] -assert len(pickle_choices) == 3 +pickle_choices = [(pickle, pickle, proto) for proto in range(4)] +assert len(pickle_choices) == 4 # An arbitrary collection of objects of non-datetime types, for testing # mixed-type comparisons. @@ -122,18 +122,23 @@ class TestTZInfo(unittest.TestCase): def test_pickling_subclass(self): # Make sure we can pickle/unpickle an instance of a subclass. offset = timedelta(minutes=-300) - orig = PicklableFixedOffset(offset, 'cookie') - self.assertIsInstance(orig, tzinfo) - self.assertTrue(type(orig) is PicklableFixedOffset) - self.assertEqual(orig.utcoffset(None), offset) - self.assertEqual(orig.tzname(None), 'cookie') - for pickler, unpickler, proto in pickle_choices: - green = pickler.dumps(orig, proto) - derived = unpickler.loads(green) - self.assertIsInstance(derived, tzinfo) - self.assertTrue(type(derived) is PicklableFixedOffset) - self.assertEqual(derived.utcoffset(None), offset) - self.assertEqual(derived.tzname(None), 'cookie') + for otype, args in [ + (PicklableFixedOffset, (offset, 'cookie')), + (timezone, (offset,)), + (timezone, (offset, "EST"))]: + orig = otype(*args) + oname = orig.tzname(None) + self.assertIsInstance(orig, tzinfo) + self.assertIs(type(orig), otype) + self.assertEqual(orig.utcoffset(None), offset) + self.assertEqual(orig.tzname(None), oname) + for pickler, unpickler, proto in pickle_choices: + green = pickler.dumps(orig, proto) + derived = unpickler.loads(green) + self.assertIsInstance(derived, tzinfo) + self.assertIs(type(derived), otype) + self.assertEqual(derived.utcoffset(None), offset) + self.assertEqual(derived.tzname(None), oname) class TestTimeZone(unittest.TestCase): |