1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #!/usr/bin/env python
- #
- # Author: Mike McKerns (mmckerns @caltech and @uqfoundation)
- # Copyright (c) 2008-2016 California Institute of Technology.
- # Copyright (c) 2016-2024 The Uncertainty Quantification Foundation.
- # License: 3-clause BSD. The full license text is available at:
- # - https://github.com/uqfoundation/dill/blob/master/LICENSE
- import sys
- import dill
- dill.settings['recurse'] = True
- class Foo(object):
- def __init__(self):
- self._data = 1
- def _get_data(self):
- return self._data
- def _set_data(self, x):
- self._data = x
- data = property(_get_data, _set_data)
- def test_data_not_none():
- FooS = dill.copy(Foo)
- assert FooS.data.fget is not None
- assert FooS.data.fset is not None
- assert FooS.data.fdel is None
- def test_data_unchanged():
- FooS = dill.copy(Foo)
- try:
- res = FooS().data
- except Exception:
- e = sys.exc_info()[1]
- raise AssertionError(str(e))
- else:
- assert res == 1
- def test_data_changed():
- FooS = dill.copy(Foo)
- try:
- f = FooS()
- f.data = 1024
- res = f.data
- except Exception:
- e = sys.exc_info()[1]
- raise AssertionError(str(e))
- else:
- assert res == 1024
- if __name__ == '__main__':
- test_data_not_none()
- test_data_unchanged()
- test_data_changed()
|