| |
| |
| |
| |
| |
| |
| |
|
|
| import sys |
| import dill |
| import test_mixins as module |
| from importlib import reload |
| dill.settings['recurse'] = True |
|
|
| cached = (module.__cached__ if hasattr(module, "__cached__") |
| else module.__file__.split(".", 1)[0] + ".pyc") |
|
|
| module.a = 1234 |
|
|
| pik_mod = dill.dumps(module) |
|
|
| module.a = 0 |
|
|
| |
| del sys.modules[module.__name__] |
| del module |
|
|
| module = dill.loads(pik_mod) |
| def test_attributes(): |
| |
| assert module.double_add(1, 2, 3) == 2 * module.fx |
|
|
| |
|
|
| reload(module) |
|
|
| try: |
| dill.use_diff() |
|
|
| module.a = 1234 |
|
|
| pik_mod = dill.dumps(module) |
|
|
| module.a = 0 |
|
|
| |
| del sys.modules[module.__name__] |
| del module |
|
|
| module = dill.loads(pik_mod) |
| def test_diff_attributes(): |
| assert hasattr(module, "a") and module.a == 1234 |
| assert module.double_add(1, 2, 3) == 2 * module.fx |
|
|
| except AttributeError: |
| def test_diff_attributes(): |
| pass |
|
|
| |
| import os |
| if os.path.exists(cached): |
| os.remove(cached) |
| pycache = os.path.join(os.path.dirname(module.__file__), "__pycache__") |
| if os.path.exists(pycache) and not os.listdir(pycache): |
| os.removedirs(pycache) |
|
|
|
|
| |
| import math |
|
|
| def get_lambda(str, **kwarg): |
| return eval(str, kwarg, None) |
|
|
| obj = get_lambda('lambda x: math.exp(x)', math=math) |
|
|
| def test_module_is_none(): |
| assert obj.__module__ is None |
| assert dill.copy(obj)(3) == obj(3) |
|
|
|
|
| if __name__ == '__main__': |
| test_attributes() |
| test_diff_attributes() |
| test_module_is_none() |
|
|