summaryrefslogtreecommitdiff
path: root/src/isodate/tests/test_pickle.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/isodate/tests/test_pickle.py')
-rw-r--r--src/isodate/tests/test_pickle.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/src/isodate/tests/test_pickle.py b/src/isodate/tests/test_pickle.py
index 867bc40..b52f8cb 100644
--- a/src/isodate/tests/test_pickle.py
+++ b/src/isodate/tests/test_pickle.py
@@ -9,14 +9,32 @@ class TestPickle(unittest.TestCase):
datetime object.
'''
- def test_pickle(self):
+ def test_pickle_datetime(self):
'''
Parse an ISO datetime string and compare it to the expected value.
'''
dti = isodate.parse_datetime('2012-10-26T09:33+00:00')
- pikl = pickle.dumps(dti, 2)
- dto = pickle.loads(pikl)
- self.assertEqual(dti, dto)
+ for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
+ pikl = pickle.dumps(dti, proto)
+ self.assertEqual(dti, pickle.loads(pikl),
+ "pickle proto %d failed" % proto)
+
+ def test_pickle_duration(self):
+ '''
+ Pickle / unpickle duration objects.
+ '''
+ from isodate.duration import Duration
+ dur = Duration()
+ failed = []
+ for proto in range(0, pickle.HIGHEST_PROTOCOL + 1):
+ try:
+ pikl = pickle.dumps(dur, proto)
+ if dur != pickle.loads(pikl):
+ raise Exception("not equal")
+ except Exception, e:
+ failed.append("pickle proto %d failed (%s)" % (proto, repr(e)))
+ self.assertEqual(len(failed), 0, "pickle protos failed: %s" %
+ str(failed))
def test_suite():