Current Path: > > opt > cloudlinux > venv > lib > python3.11 > site-packages > dill > tests
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 501 bytes | April 17 2025 13:10:59. | |
__main__.py | File | 899 bytes | April 17 2025 13:10:59. | |
test_abc.py | File | 3838 bytes | April 17 2025 13:10:59. | |
test_check.py | File | 1396 bytes | April 17 2025 13:10:59. | |
test_classdef.py | File | 7160 bytes | April 17 2025 13:10:59. | |
test_dataclasses.py | File | 890 bytes | April 17 2025 13:10:59. | |
test_detect.py | File | 4083 bytes | April 17 2025 13:10:59. | |
test_dictviews.py | File | 1337 bytes | April 17 2025 13:10:59. | |
test_diff.py | File | 2667 bytes | April 17 2025 13:10:59. | |
test_extendpickle.py | File | 1315 bytes | April 17 2025 13:10:59. | |
test_fglobals.py | File | 1676 bytes | April 17 2025 13:10:59. | |
test_file.py | File | 13578 bytes | April 17 2025 13:10:59. | |
test_functions.py | File | 4267 bytes | April 17 2025 13:10:59. | |
test_functors.py | File | 930 bytes | April 17 2025 13:10:59. | |
test_logger.py | File | 2385 bytes | April 17 2025 13:10:59. | |
test_mixins.py | File | 4007 bytes | April 17 2025 13:10:59. | |
test_module.py | File | 1943 bytes | April 17 2025 13:10:59. | |
test_moduledict.py | File | 1182 bytes | April 17 2025 13:10:59. | |
test_nested.py | File | 3146 bytes | April 17 2025 13:10:59. | |
test_objects.py | File | 1834 bytes | April 17 2025 13:10:59. | |
test_properties.py | File | 1346 bytes | April 17 2025 13:10:59. | |
test_pycapsule.py | File | 1417 bytes | April 17 2025 13:10:59. | |
test_recursive.py | File | 4182 bytes | April 17 2025 13:10:59. | |
test_registered.py | File | 1573 bytes | April 17 2025 13:10:59. | |
test_restricted.py | File | 783 bytes | April 17 2025 13:10:59. | |
test_selected.py | File | 3218 bytes | April 17 2025 13:10:59. | |
test_session.py | File | 10161 bytes | April 17 2025 13:10:59. | |
test_source.py | File | 6036 bytes | April 17 2025 13:10:59. | |
test_temp.py | File | 2619 bytes | April 17 2025 13:10:59. | |
test_weakref.py | File | 1602 bytes | April 17 2025 13:10:59. |
#!/usr/bin/env python """ test dill's ability to pickle abstract base class objects """ import dill import abc from abc import ABC import warnings from types import FunctionType dill.settings['recurse'] = True class OneTwoThree(ABC): @abc.abstractmethod def foo(self): """A method""" pass @property @abc.abstractmethod def bar(self): """Property getter""" pass @bar.setter @abc.abstractmethod def bar(self, value): """Property setter""" pass @classmethod @abc.abstractmethod def cfoo(cls): """Class method""" pass @staticmethod @abc.abstractmethod def sfoo(): """Static method""" pass class EasyAsAbc(OneTwoThree): def __init__(self): self._bar = None def foo(self): return "Instance Method FOO" @property def bar(self): return self._bar @bar.setter def bar(self, value): self._bar = value @classmethod def cfoo(cls): return "Class Method CFOO" @staticmethod def sfoo(): return "Static Method SFOO" def test_abc_non_local(): assert dill.copy(OneTwoThree) is not OneTwoThree assert dill.copy(EasyAsAbc) is not EasyAsAbc with warnings.catch_warnings(): warnings.simplefilter("ignore", dill.PicklingWarning) assert dill.copy(OneTwoThree, byref=True) is OneTwoThree assert dill.copy(EasyAsAbc, byref=True) is EasyAsAbc instance = EasyAsAbc() # Set a property that StockPickle can't preserve instance.bar = lambda x: x**2 depickled = dill.copy(instance) assert type(depickled) is not type(instance) assert type(depickled.bar) is FunctionType assert depickled.bar(3) == 9 assert depickled.sfoo() == "Static Method SFOO" assert depickled.cfoo() == "Class Method CFOO" assert depickled.foo() == "Instance Method FOO" def test_abc_local(): """ Test using locally scoped ABC class """ class LocalABC(ABC): @abc.abstractmethod def foo(self): pass def baz(self): return repr(self) labc = dill.copy(LocalABC) assert labc is not LocalABC assert type(labc) is type(LocalABC) # TODO should work like it does for non local classes # <class '__main__.LocalABC'> # <class '__main__.test_abc_local.<locals>.LocalABC'> class Real(labc): def foo(self): return "True!" def baz(self): return "My " + super(Real, self).baz() real = Real() assert real.foo() == "True!" try: labc() except TypeError as e: # Expected error pass else: print('Failed to raise type error') assert False labc2, pik = dill.copy((labc, Real())) assert 'Real' == type(pik).__name__ assert '.Real' in type(pik).__qualname__ assert type(pik) is not Real assert labc2 is not LocalABC assert labc2 is not labc assert isinstance(pik, labc2) assert not isinstance(pik, labc) assert not isinstance(pik, LocalABC) assert pik.baz() == "My " + repr(pik) def test_meta_local_no_cache(): """ Test calling metaclass and cache registration """ LocalMetaABC = abc.ABCMeta('LocalMetaABC', (), {}) class ClassyClass: pass class KlassyClass: pass LocalMetaABC.register(ClassyClass) assert not issubclass(KlassyClass, LocalMetaABC) assert issubclass(ClassyClass, LocalMetaABC) res = dill.dumps((LocalMetaABC, ClassyClass, KlassyClass)) lmabc, cc, kc = dill.loads(res) assert type(lmabc) == type(LocalMetaABC) assert not issubclass(kc, lmabc) assert issubclass(cc, lmabc) if __name__ == '__main__': test_abc_non_local() test_abc_local() test_meta_local_no_cache()
SILENT KILLER Tool