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_clears_attrs(self): from zope.copy.examples import Demo parent = Demo() demo = Demo() demo.__parent__ = parent demo.__name__ = 'demo' copied = self._callFUT(demo) self.assertFalse(copied is demo) self.assertTrue(isinstance(copied, Demo)) self.assertEqual(copied.__parent__, None) self.assertEqual(copied.__name__, None)
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())