stdpy: Add PicklingError to pickle module

This commit is contained in:
rdb 2020-12-30 22:34:04 +01:00
parent d3ebeee058
commit 65c1ef968c
2 changed files with 13 additions and 1 deletions

View File

@ -33,6 +33,8 @@ else:
# with the local pickle.py.
pickle = __import__('pickle')
PicklingError = pickle.PicklingError
if sys.version_info >= (3, 0):
BasePickler = pickle._Pickler
BaseUnpickler = pickle._Unpickler

View File

@ -1,4 +1,5 @@
from direct.stdpy.pickle import dumps, loads
from direct.stdpy.pickle import dumps, loads, PicklingError
import pytest
def test_reduce_persist():
@ -9,3 +10,12 @@ def test_reduce_persist():
parent2, child2 = loads(dumps([parent, child]))
assert tuple(parent2.children) == (child2,)
def test_pickle_error():
class ErroneousPickleable(object):
def __reduce__(self):
return 12345
with pytest.raises(PicklingError):
dumps(ErroneousPickleable())