OXIESEC PANEL
- Current Dir:
/
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
dill
/
tests
Server IP: 2a02:4780:11:1084:0:327f:3464:10
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
02/07/2025 10:01:30 PM
rwxr-xr-x
📄
__init__.py
501 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
__main__.py
899 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📁
__pycache__
-
02/07/2025 10:01:30 PM
rwxr-xr-x
📄
test_abc.py
3.75 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_check.py
1.36 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_classdef.py
6.99 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_dataclasses.py
890 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_detect.py
3.99 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_dictviews.py
1.31 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_diff.py
2.6 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_extendpickle.py
1.28 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_fglobals.py
1.64 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_file.py
13.26 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_functions.py
4.17 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_functors.py
930 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_logger.py
2.33 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_mixins.py
3.91 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_module.py
1.9 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_moduledict.py
1.15 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_nested.py
3.07 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_objects.py
1.79 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_properties.py
1.31 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_pycapsule.py
1.38 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_recursive.py
4.08 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_registered.py
1.54 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_restricted.py
783 bytes
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_selected.py
3.14 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_session.py
9.92 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_source.py
5.89 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_temp.py
2.56 KB
12/18/2024 10:23:16 AM
rw-r--r--
📄
test_weakref.py
1.56 KB
12/18/2024 10:23:16 AM
rw-r--r--
Editing: test_nested.py
Close
#!/usr/bin/env python # # Author: Mike McKerns (mmckerns @caltech and @uqfoundation) # Copyright (c) 2008-2016 California Institute of Technology. # Copyright (c) 2016-2023 The Uncertainty Quantification Foundation. # License: 3-clause BSD. The full license text is available at: # - https://github.com/uqfoundation/dill/blob/master/LICENSE """ test dill's ability to handle nested functions """ import os import math import dill as pickle pickle.settings['recurse'] = True # the nested function: pickle should fail here, but dill is ok. def adder(augend): zero = [0] def inner(addend): return addend + augend + zero[0] return inner # rewrite the nested function using a class: standard pickle should work here. class cadder(object): def __init__(self, augend): self.augend = augend self.zero = [0] def __call__(self, addend): return addend + self.augend + self.zero[0] # rewrite again, but as an old-style class class c2adder: def __init__(self, augend): self.augend = augend self.zero = [0] def __call__(self, addend): return addend + self.augend + self.zero[0] # some basic class stuff class basic(object): pass class basic2: pass x = 5 y = 1 def test_basic(): a = [0, 1, 2] pa = pickle.dumps(a) pmath = pickle.dumps(math) #XXX: FAILS in pickle pmap = pickle.dumps(map) # ... la = pickle.loads(pa) lmath = pickle.loads(pmath) lmap = pickle.loads(pmap) assert list(map(math.sin, a)) == list(lmap(lmath.sin, la)) def test_basic_class(): pbasic2 = pickle.dumps(basic2) _pbasic2 = pickle.loads(pbasic2)() pbasic = pickle.dumps(basic) _pbasic = pickle.loads(pbasic)() def test_c2adder(): pc2adder = pickle.dumps(c2adder) pc2add5 = pickle.loads(pc2adder)(x) assert pc2add5(y) == x+y def test_pickled_cadder(): pcadder = pickle.dumps(cadder) pcadd5 = pickle.loads(pcadder)(x) assert pcadd5(y) == x+y def test_raw_adder_and_inner(): add5 = adder(x) assert add5(y) == x+y def test_pickled_adder(): padder = pickle.dumps(adder) padd5 = pickle.loads(padder)(x) assert padd5(y) == x+y def test_pickled_inner(): add5 = adder(x) pinner = pickle.dumps(add5) #XXX: FAILS in pickle p5add = pickle.loads(pinner) assert p5add(y) == x+y def test_moduledict_where_not_main(): try: from . import test_moduledict except ImportError: import test_moduledict name = 'test_moduledict.py' if os.path.exists(name) and os.path.exists(name+'c'): os.remove(name+'c') if os.path.exists(name) and hasattr(test_moduledict, "__cached__") \ and os.path.exists(test_moduledict.__cached__): os.remove(getattr(test_moduledict, "__cached__")) if os.path.exists("__pycache__") and not os.listdir("__pycache__"): os.removedirs("__pycache__") if __name__ == '__main__': test_basic() test_basic_class() test_c2adder() test_pickled_cadder() test_raw_adder_and_inner() test_pickled_adder() test_pickled_inner() test_moduledict_where_not_main()