File: test_pickle.py

package info (click to toggle)
isodate 0.7.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 264 kB
  • sloc: python: 1,524; makefile: 5
file content (32 lines) | stat: -rw-r--r-- 1,053 bytes parent folder | download | duplicates (2)
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
import pickle

import isodate


def test_pickle_datetime():
    """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)
        assert dti == pickle.loads(pikl), "pickle proto %d failed" % proto


def test_pickle_duration():
    """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 as e:
            failed.append("pickle proto %d failed (%s)" % (proto, repr(e)))
    assert len(failed) == 0, "pickle protos failed: %s" % str(failed)


def test_pickle_utc():
    """isodate.UTC objects remain the same after pickling."""
    assert isodate.UTC is pickle.loads(pickle.dumps(isodate.UTC))