X7ROOT File Manager
Current Path:
/opt/cloudlinux/venv/lib/python3.11/site-packages/dill/tests
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
dill
/
tests
/
ðŸ“
..
📄
__init__.py
(501 B)
📄
__main__.py
(899 B)
ðŸ“
__pycache__
📄
test_abc.py
(3.75 KB)
📄
test_check.py
(1.36 KB)
📄
test_classdef.py
(6.99 KB)
📄
test_dataclasses.py
(890 B)
📄
test_detect.py
(3.99 KB)
📄
test_dictviews.py
(1.31 KB)
📄
test_diff.py
(2.6 KB)
📄
test_extendpickle.py
(1.28 KB)
📄
test_fglobals.py
(1.64 KB)
📄
test_file.py
(13.26 KB)
📄
test_functions.py
(4.17 KB)
📄
test_functors.py
(930 B)
📄
test_logger.py
(2.33 KB)
📄
test_mixins.py
(3.91 KB)
📄
test_module.py
(1.9 KB)
📄
test_moduledict.py
(1.15 KB)
📄
test_nested.py
(3.07 KB)
📄
test_objects.py
(1.79 KB)
📄
test_properties.py
(1.31 KB)
📄
test_pycapsule.py
(1.38 KB)
📄
test_recursive.py
(4.08 KB)
📄
test_registered.py
(1.54 KB)
📄
test_restricted.py
(783 B)
📄
test_selected.py
(3.14 KB)
📄
test_session.py
(9.92 KB)
📄
test_source.py
(5.89 KB)
📄
test_temp.py
(2.56 KB)
📄
test_weakref.py
(1.56 KB)
Editing: test_abc.py
#!/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()
Upload File
Create Folder