test_pickling.py (11986:c12e4625ab56) test_pickling.py (12037:d28054ac6ec9)
1import pytest
2
1try:
2 import cPickle as pickle # Use cPickle on Python 2.7
3except ImportError:
4 import pickle
5
6
7def test_roundtrip():
8 from pybind11_tests import Pickleable

--- 4 unchanged lines hidden (view full) ---

13
14 data = pickle.dumps(p, 2) # Must use pickle protocol >= 2
15 p2 = pickle.loads(data)
16 assert p2.value() == p.value()
17 assert p2.extra1() == p.extra1()
18 assert p2.extra2() == p.extra2()
19
20
3try:
4 import cPickle as pickle # Use cPickle on Python 2.7
5except ImportError:
6 import pickle
7
8
9def test_roundtrip():
10 from pybind11_tests import Pickleable

--- 4 unchanged lines hidden (view full) ---

15
16 data = pickle.dumps(p, 2) # Must use pickle protocol >= 2
17 p2 = pickle.loads(data)
18 assert p2.value() == p.value()
19 assert p2.extra1() == p.extra1()
20 assert p2.extra2() == p.extra2()
21
22
23@pytest.unsupported_on_pypy
21def test_roundtrip_with_dict():
22 from pybind11_tests import PickleableWithDict
23
24 p = PickleableWithDict("test_value")
25 p.extra = 15
26 p.dynamic = "Attribute"
27
28 data = pickle.dumps(p, pickle.HIGHEST_PROTOCOL)
29 p2 = pickle.loads(data)
30 assert p2.value == p.value
31 assert p2.extra == p.extra
32 assert p2.dynamic == p.dynamic
24def test_roundtrip_with_dict():
25 from pybind11_tests import PickleableWithDict
26
27 p = PickleableWithDict("test_value")
28 p.extra = 15
29 p.dynamic = "Attribute"
30
31 data = pickle.dumps(p, pickle.HIGHEST_PROTOCOL)
32 p2 = pickle.loads(data)
33 assert p2.value == p.value
34 assert p2.extra == p.extra
35 assert p2.dynamic == p.dynamic