[Checkins] SVN: zope.component/tseaver-test_cleanup/ Convert 'register for None' doctest to Sphinx + unittests.

Tres Seaver cvs-admin at zope.org
Mon Jun 18 18:17:23 UTC 2012


Log message for revision 126958:
  Convert 'register for None' doctest to Sphinx + unittests.

Changed:
  _U  zope.component/tseaver-test_cleanup/
  U   zope.component/tseaver-test_cleanup/docs/api.rst
  U   zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py
  U   zope.component/tseaver-test_cleanup/src/zope/component/tests/test_doctests.py

-=-
Modified: zope.component/tseaver-test_cleanup/docs/api.rst
===================================================================
--- zope.component/tseaver-test_cleanup/docs/api.rst	2012-06-18 18:17:15 UTC (rev 126957)
+++ zope.component/tseaver-test_cleanup/docs/api.rst	2012-06-18 18:17:19 UTC (rev 126958)
@@ -618,6 +618,32 @@
    >>> adapted is marker
    True
 
+Registering Adapters For Arbitrary Objects
+##########################################
+
+Providing an adapter for None says that your adapter can adapt anything
+to `I2`.
+
+.. doctest::
+
+   >>> gsm.registerAdapter(Comp, (None,), I2, '')
+   >>> adapter = I2(ob)
+   >>> adapter.__class__ is Comp
+   True
+   >>> adapter.context is ob
+   True
+
+It can really adapt any arbitrary object:
+
+.. doctest::
+
+   >>> something = object()
+   >>> adapter = I2(something)
+   >>> adapter.__class__ is Comp
+   True
+   >>> adapter.context is something
+   True
+
 Looking Up Adapters Using Multiple Objects
 ##########################################
 

Modified: zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py	2012-06-18 18:17:15 UTC (rev 126957)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py	2012-06-18 18:17:19 UTC (rev 126958)
@@ -445,6 +445,23 @@
         self.assertTrue(adapted.__class__ is Baz)
         self.assertTrue(adapted.context is bar)
 
+    def test_getAdapter_anonymous_hit_registered_for_None(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import getAdapter
+        class IFoo(Interface):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (None,), IFoo, '')
+        ctx = object()
+        adapted = getAdapter(ctx, IFoo, '')
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is ctx)
+
     def test_getAdapter_named_hit(self):
         from zope.interface import Interface
         from zope.interface import implementer
@@ -595,6 +612,22 @@
         self.assertTrue(adapted.__class__ is Baz)
         self.assertTrue(adapted.context is bar)
 
+    def test_interface_call_hit_registered_for_None(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        class IFoo(Interface):
+            pass
+        @implementer(IFoo)
+        class Baz(object):
+            def __init__(self, context):
+                self.context = context
+        getGlobalSiteManager().registerAdapter(Baz, (None,), IFoo, '')
+        ctx = object()
+        adapted = IFoo(ctx)
+        self.assertTrue(adapted.__class__ is Baz)
+        self.assertTrue(adapted.context is ctx)
+
     def test_getMultiAdapter_anonymous_nonesuch(self):
         from zope.interface import Interface
         from zope.component import getMultiAdapter
@@ -643,6 +676,33 @@
         self.assertTrue(adapted.first is bar)
         self.assertTrue(adapted.second is baz)
 
+    def test_getMultiAdapter_anonymous_hit_registered_for_None(self):
+        from zope.interface import Interface
+        from zope.interface import implementer
+        from zope.component import getGlobalSiteManager
+        from zope.component import getMultiAdapter
+        class IFoo(Interface):
+            pass
+        class IBar(Interface):
+            pass
+        class IBaz(Interface):
+            pass
+        @implementer(IBar)
+        class Bar(object):
+            pass
+        @implementer(IFoo)
+        class FooAdapter(object):
+            def __init__(self, first, second):
+                self.first, self.second = first, second
+        getGlobalSiteManager().registerAdapter(
+                                FooAdapter, (IBar, None), IFoo, '')
+        bar = Bar()
+        baz = object()
+        adapted = getMultiAdapter((bar, baz), IFoo, '')
+        self.assertTrue(adapted.__class__ is FooAdapter)
+        self.assertTrue(adapted.first is bar)
+        self.assertTrue(adapted.second is baz)
+
     def test_getMultiAdapter_named_hit(self):
         from zope.interface import Interface
         from zope.interface import implementer

Modified: zope.component/tseaver-test_cleanup/src/zope/component/tests/test_doctests.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test_doctests.py	2012-06-18 18:17:15 UTC (rev 126957)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_doctests.py	2012-06-18 18:17:19 UTC (rev 126958)
@@ -165,32 +165,6 @@
         if interface is IComponentLookup:
             return self.sitemanager
 
-def testAdapterForInterfaceNone():
-    """Providing an adapter for None says that your adapter can adapt anything
-    to `I2`.
-
-      >>> from zope.component.testing import setUp, tearDown
-      >>> setUp()
-      >>> component.getGlobalSiteManager().registerAdapter(
-      ...     Comp, (None,), I2, '')
-
-      >>> adapter = I2(ob)
-      >>> adapter.__class__ is Comp
-      True
-      >>> adapter.context is ob
-      True
-
-    It can really adapt any arbitrary object:
-
-      >>> something = object()
-      >>> adapter = I2(something)
-      >>> adapter.__class__ is Comp
-      True
-      >>> adapter.context is something
-      True
-      >>> tearDown()
-    """
-
 def testGetAdapters():
     """It is sometimes desireable to get a list of all adapters that are
     registered for a particular output interface, given a set of



More information about the checkins mailing list