[Checkins] SVN: zope.component/tseaver-test_cleanup/ Coverage.

Tres Seaver cvs-admin at zope.org
Mon Jun 25 04:04:51 UTC 2012


Log message for revision 127064:
  Coverage.

Changed:
  _U  zope.component/tseaver-test_cleanup/
  U   zope.component/tseaver-test_cleanup/src/zope/component/tests/test_hooks.py

-=-
Modified: zope.component/tseaver-test_cleanup/src/zope/component/tests/test_hooks.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test_hooks.py	2012-06-25 04:04:43 UTC (rev 127063)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_hooks.py	2012-06-25 04:04:47 UTC (rev 127064)
@@ -212,6 +212,55 @@
         self.assertTrue(sm.context is context)
 
 
+class Test_adapter_hook(unittest.TestCase):
+
+    def _callFUT(self, interface, object, name='', default=None):
+        from zope.component.hooks import adapter_hook
+        return adapter_hook(interface, object, name, default)
+
+    def test_success(self):
+        from zope.interface import Interface
+        from zope.component import hooks
+        from zope.component.globalregistry import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        gsm = getGlobalSiteManager()
+        _ADAPTER = object()
+        _DEFAULT = object()
+        _CONTEXT = object()
+        _called = []
+        def _adapter_hook(interface, object, name, default):
+            _called.append((interface, object, name, default))
+            return _ADAPTER
+        siteinfo = _DummySiteInfo()
+        siteinfo.adapter_hook = _adapter_hook
+        with _Monkey(hooks, siteinfo=siteinfo):
+            adapter = self._callFUT(IFoo, _CONTEXT, 'bar', _DEFAULT)
+        self.assertTrue(adapter is _ADAPTER)
+        self.assertEqual(_called, [(IFoo, _CONTEXT, 'bar', _DEFAULT)])
+
+    def test_hook_raises(self):
+        from zope.interface import Interface
+        from zope.component import hooks
+        from zope.component.globalregistry import getGlobalSiteManager
+        from zope.component.interfaces import ComponentLookupError
+        class IFoo(Interface):
+            pass
+        gsm = getGlobalSiteManager()
+        _DEFAULT = object()
+        _CONTEXT = object()
+        _called = []
+        def _adapter_hook(interface, object, name, default):
+            _called.append((interface, object, name, default))
+            raise ComponentLookupError('testing')
+        siteinfo = _DummySiteInfo()
+        siteinfo.adapter_hook = _adapter_hook
+        with _Monkey(hooks, siteinfo=siteinfo):
+            adapter = self._callFUT(IFoo, _CONTEXT, 'bar', _DEFAULT)
+        self.assertTrue(adapter is _DEFAULT)
+        self.assertEqual(_called, [(IFoo, _CONTEXT, 'bar', _DEFAULT)])
+
+
 _SM = object()
 class _DummySiteInfo(object):
     sm = _SM
@@ -241,5 +290,6 @@
         unittest.makeSuite(Test_getSite),
         unittest.makeSuite(Test_site),
         unittest.makeSuite(Test_getSiteManager),
+        unittest.makeSuite(Test_adapter_hook),
     ))
 



More information about the checkins mailing list