blob: 4b824e70b06b4174b892669a30b98eaa0ab9d6db (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
import unittest
import cPickle as pickle
import isodate
class TestPickle(unittest.TestCase):
'''
A test case template to parse an ISO datetime string into a
datetime object.
'''
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')
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_pickle_utc(self):
'''
isodate.UTC objects remain the same after pickling.
'''
self.assertTrue(isodate.UTC is pickle.loads(pickle.dumps(isodate.UTC)))
def test_suite():
'''
Construct a TestSuite instance for all test cases.
'''
suite = unittest.TestSuite()
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestPickle))
return suite
# load_tests Protocol
def load_tests(loader, tests, pattern):
return test_suite()
if __name__ == '__main__':
unittest.main(defaultTest='test_suite')
|