summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-06-23 21:40:15 (GMT)
committerAlexander Belopolsky <alexander.belopolsky@gmail.com>2010-06-23 21:40:15 (GMT)
commit1b7046b99e2369175c19532a788e722daf7c65f0 (patch)
treefe4097e8e160a3dfd81cee18ff946e25733f60f9 /Lib
parentb7e10100968af7e4c56543e45eced93e75448d27 (diff)
downloadcpython-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.py33
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):