def test_wo_hooks(self): from zope.copy.examples import Demo demo = Demo() demo.freeze() self.assertTrue(demo.isFrozen()) copied = self._callFUT(demo) self.assertFalse(copied is demo) self.assertTrue(isinstance(copied, Demo)) self.assertTrue(copied.isFrozen())
def test_w_simple_hook(self): from zope.copy.interfaces import ICopyHook from zope.copy.examples import Data from zope.copy.examples import Demo demo = Demo() demo.freeze() class Hook(object): def __init__(self, context): self.context = context def __call__(self, obj, register): return None def _adapt(iface, obj): if iface is ICopyHook and isinstance(obj, Data): return Hook(obj) _registerAdapterHook(_adapt) copied = self._callFUT(demo) self.assertFalse(copied is demo) self.assertTrue(isinstance(copied, Demo)) self.assertFalse(copied.isFrozen())