[Python-checkins] python/dist/src/Lib/test test_datetime.py,1.30,1.31
gvanrossum@users.sourceforge.net
gvanrossum@users.sourceforge.net
Thu, 30 Jan 2003 14:06:28 -0800
Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1:/tmp/cvs-serv16937/Lib/test
Modified Files:
test_datetime.py
Log Message:
Change the approach to pickling to use __reduce__ everywhere. Most
classes have a __reduce__ that returns (self.__class__,
self.__getstate__()). tzinfo.__reduce__() is a bit smarter, calling
__getinitargs__ and __getstate__ if they exist, and falling back to
__dict__ if it exists and isn't empty.
Index: test_datetime.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_datetime.py,v
retrieving revision 1.30
retrieving revision 1.31
diff -C2 -d -r1.30 -r1.31
*** test_datetime.py 24 Jan 2003 22:36:30 -0000 1.30
--- test_datetime.py 30 Jan 2003 22:06:23 -0000 1.31
***************
*** 5,8 ****
--- 5,10 ----
import sys
+ import pickle
+ import cPickle
import unittest
***************
*** 16,19 ****
--- 18,37 ----
+ pickle_choices = [
+ (pickle, pickle, 0),
+ (pickle, pickle, 1),
+ (pickle, pickle, 2),
+ (cPickle, cPickle, 0),
+ (cPickle, cPickle, 1),
+ ## (cPickle, cPickle, 2),
+ (pickle, cPickle, 0),
+ (pickle, cPickle, 1),
+ ## (pickle, cPickle, 2),
+ (cPickle, pickle, 0),
+ (cPickle, pickle, 1),
+ ## (cPickle, pickle, 2),
+ ]
+
+
# XXX The test suite uncovered a bug in Python 2.2.2: if x and y are
# XXX instances of new-style classes (like date and time) that both
***************
*** 101,106 ****
def test_pickling_base(self):
- import pickle, cPickle
-
# There's no point to pickling tzinfo objects on their own (they
# carry no data), but they need to be picklable anyway else
--- 119,122 ----
***************
*** 108,120 ****
orig = tzinfo.__new__(tzinfo)
self.failUnless(type(orig) is tzinfo)
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.failUnless(type(derived) is tzinfo)
def test_pickling_subclass(self):
- import pickle, cPickle
-
# Make sure we can pickle/unpickle an instance of a subclass.
offset = timedelta(minutes=-300)
--- 124,133 ----
orig = tzinfo.__new__(tzinfo)
self.failUnless(type(orig) is tzinfo)
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.failUnless(type(derived) is tzinfo)
def test_pickling_subclass(self):
# Make sure we can pickle/unpickle an instance of a subclass.
offset = timedelta(minutes=-300)
***************
*** 124,131 ****
self.assertEqual(orig.utcoffset(None), offset)
self.assertEqual(orig.tzname(None), 'cookie')
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.failUnless(isinstance(derived, tzinfo))
self.failUnless(type(derived) is PicklableFixedOffset)
--- 137,143 ----
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.failUnless(isinstance(derived, tzinfo))
self.failUnless(type(derived) is PicklableFixedOffset)
***************
*** 265,269 ****
def test_pickling(self):
- import pickle, cPickle
args = 12, 34, 56
orig = timedelta(*args)
--- 277,280 ----
***************
*** 273,280 ****
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
--- 284,290 ----
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
***************
*** 824,839 ****
def test_pickling(self):
- import pickle, cPickle
args = 6, 7, 23
orig = self.theclass(*args)
state = orig.__getstate__()
! self.assertEqual(state, '\x00\x06\x07\x17')
derived = self.theclass(1, 1, 1)
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
--- 834,847 ----
def test_pickling(self):
args = 6, 7, 23
orig = self.theclass(*args)
state = orig.__getstate__()
! self.assertEqual(state, ('\x00\x06\x07\x17',), self.theclass)
derived = self.theclass(1, 1, 1)
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
***************
*** 1183,1187 ****
def test_pickling(self):
- import pickle, cPickle
args = 6, 7, 23, 20, 59, 1, 64**2
orig = self.theclass(*args)
--- 1191,1194 ----
***************
*** 1191,1198 ****
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
--- 1198,1204 ----
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
***************
*** 1569,1573 ****
def test_pickling(self):
- import pickle, cPickle
args = 20, 59, 16, 64**2
orig = self.theclass(*args)
--- 1575,1578 ----
***************
*** 1577,1584 ****
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
--- 1582,1588 ----
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
***************
*** 1883,1888 ****
def test_pickling(self):
- import pickle, cPickle
-
# Try one without a tzinfo.
args = 20, 59, 16, 64**2
--- 1887,1890 ----
***************
*** 1893,1900 ****
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
--- 1895,1901 ----
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
***************
*** 1910,1917 ****
self.assertEqual(derived.tzname(), 'cookie')
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
self.failUnless(isinstance(derived.tzinfo,
--- 1911,1917 ----
self.assertEqual(derived.tzname(), 'cookie')
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
self.failUnless(isinstance(derived.tzinfo,
***************
*** 2102,2107 ****
def test_pickling(self):
- import pickle, cPickle
-
# Try one without a tzinfo.
args = 6, 7, 23, 20, 59, 1, 64**2
--- 2102,2105 ----
***************
*** 2112,2119 ****
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
--- 2110,2116 ----
derived.__setstate__(state)
self.assertEqual(orig, derived)
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
***************
*** 2129,2136 ****
self.assertEqual(derived.tzname(), 'cookie')
! for pickler in pickle, cPickle:
! for binary in 0, 1:
! green = pickler.dumps(orig, binary)
! derived = pickler.loads(green)
self.assertEqual(orig, derived)
self.failUnless(isinstance(derived.tzinfo,
--- 2126,2132 ----
self.assertEqual(derived.tzname(), 'cookie')
! for pickler, unpickler, proto in pickle_choices:
! green = pickler.dumps(orig, proto)
! derived = unpickler.loads(green)
self.assertEqual(orig, derived)
self.failUnless(isinstance(derived.tzinfo,