Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F93662385
test_pickling.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sat, Nov 30, 13:16
Size
1 KB
Mime Type
text/x-python
Expires
Mon, Dec 2, 13:16 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
22602444
Attached To
R7581 SP4E Homework
test_pickling.py
View Options
import
pytest
from
pybind11_tests
import
pickling
as
m
try
:
import
cPickle
as
pickle
# Use cPickle on Python 2.7
except
ImportError
:
import
pickle
@pytest.mark.parametrize
(
"cls_name"
,
[
"Pickleable"
,
"PickleableNew"
])
def
test_roundtrip
(
cls_name
):
cls
=
getattr
(
m
,
cls_name
)
p
=
cls
(
"test_value"
)
p
.
setExtra1
(
15
)
p
.
setExtra2
(
48
)
data
=
pickle
.
dumps
(
p
,
2
)
# Must use pickle protocol >= 2
p2
=
pickle
.
loads
(
data
)
assert
p2
.
value
()
==
p
.
value
()
assert
p2
.
extra1
()
==
p
.
extra1
()
assert
p2
.
extra2
()
==
p
.
extra2
()
@pytest.unsupported_on_pypy
@pytest.mark.parametrize
(
"cls_name"
,
[
"PickleableWithDict"
,
"PickleableWithDictNew"
])
def
test_roundtrip_with_dict
(
cls_name
):
cls
=
getattr
(
m
,
cls_name
)
p
=
cls
(
"test_value"
)
p
.
extra
=
15
p
.
dynamic
=
"Attribute"
data
=
pickle
.
dumps
(
p
,
pickle
.
HIGHEST_PROTOCOL
)
p2
=
pickle
.
loads
(
data
)
assert
p2
.
value
==
p
.
value
assert
p2
.
extra
==
p
.
extra
assert
p2
.
dynamic
==
p
.
dynamic
def
test_enum_pickle
():
from
pybind11_tests
import
enums
as
e
data
=
pickle
.
dumps
(
e
.
EOne
,
2
)
assert
e
.
EOne
==
pickle
.
loads
(
data
)
Event Timeline
Log In to Comment