def test_w_name_adaptable_to_ILocation(self): from zope.interface.interface import adapter_hooks from zope.location.interfaces import ILocation _hooked = [] def _hook(iface, obj): _hooked.append((iface, obj)) return obj class Dummy(object): pass parent = Dummy() dummy = Dummy() before = adapter_hooks[:] adapter_hooks.insert(0, _hook) try: self._callFUT(dummy, parent, 'name') finally: adapter_hooks[:] = before self.assertTrue(dummy.__parent__ is parent) self.assertEqual(dummy.__name__, 'name') self.assertEqual(len(_hooked), 1) self.assertEqual(_hooked[0], (ILocation, dummy))
def test_w_name_adaptable_to_ILocation(self): from zope.interface.interface import adapter_hooks from zope.location.interfaces import ILocation _hooked = [] def _hook(iface, obj): _hooked.append((iface, obj)) return obj class Dummy(object): pass parent = Dummy() dummy = Dummy() before = adapter_hooks[:] adapter_hooks.insert(0, _hook) try: self._callFUT(dummy, parent, 'name') finally: adapter_hooks[:] = before self.assertTrue(dummy.__parent__ is parent) self.assertEqual(dummy.__name__, 'name') self.assertEqual(len(_hooked), 1) self.assertEqual(_hooked[0], (ILocation, dummy))
def _registerAdapterHook(func): from zope.interface.interface import adapter_hooks adapter_hooks.insert(0, func)