diff options
Diffstat (limited to 'src/isodate/tests/test_pickle.py')
-rw-r--r-- | src/isodate/tests/test_pickle.py | 26 |
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(): |