[Checkins] SVN: zope.component/tseaver-test_cleanup/src/zope/component/ Forcibly isolate doctests, even when running under nose / 'setup.py test'.

Tres Seaver cvs-admin at zope.org
Fri May 11 02:55:45 UTC 2012


Log message for revision 125846:
  Forcibly isolate doctests, even when running under nose / 'setup.py test'.

Changed:
  U   zope.component/tseaver-test_cleanup/src/zope/component/interface.py
  U   zope.component/tseaver-test_cleanup/src/zope/component/tests/test_doctests.py

-=-
Modified: zope.component/tseaver-test_cleanup/src/zope/component/interface.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/interface.py	2012-05-11 02:55:37 UTC (rev 125845)
+++ zope.component/tseaver-test_cleanup/src/zope/component/interface.py	2012-05-11 02:55:41 UTC (rev 125846)
@@ -25,11 +25,12 @@
 def provideInterface(id, interface, iface_type=None, info=''):
     """register Interface with global site manager as utility
 
-    >>> gsm = zope.component.getGlobalSiteManager()
-
     >>> from zope.interface import Interface
     >>> from zope.interface.interfaces import IInterface
+    >>> from zope.component.testing import setUp, tearDown
     >>> from zope.component.tests.test_doctests import ITestType
+    >>> setUp()
+    >>> gsm = zope.component.getGlobalSiteManager()
 
     >>> class I(Interface):
     ...     pass
@@ -79,6 +80,7 @@
     [u'zope.component.interface.I']
     >>> [iface.__name__ for (name, iface) in interfaces]
     ['I']
+    >>> tearDown()
     """
     if not id:
         id = "%s.%s" % (interface.__module__, interface.__name__)
@@ -103,7 +105,9 @@
     """Return interface or raise ComponentLookupError
 
     >>> from zope.interface import Interface
+    >>> from zope.component.testing import setUp, tearDown
     >>> from zope.component.tests.test_doctests import ITestType
+    >>> setUp()
 
     >>> class I4(Interface):
     ...     pass
@@ -122,6 +126,7 @@
                 """ 'zope.component.interface.I4')
     >>> iface.__name__
     'I4'
+    >>> tearDown()
     """
     iface = queryInterface(id, None)
     if iface is None:
@@ -134,7 +139,9 @@
 
     >>> from zope.interface import Interface
     >>> from zope.interface.interfaces import IInterface
+    >>> from zope.component.testing import setUp, tearDown
     >>> from zope.component.tests.test_doctests import ITestType
+    >>> setUp()
 
     >>> class I3(Interface):
     ...     pass
@@ -150,6 +157,7 @@
     >>> iface = queryInterface('zope.component.interface.I3')
     >>> iface.__name__
     'I3'
+    >>> tearDown()
     """
     return zope.component.queryUtility(IInterface, id, default)
 
@@ -159,7 +167,9 @@
 
     >>> from zope.interface import Interface
     >>> from zope.interface.interfaces import IInterface
+    >>> from zope.component.testing import setUp, tearDown
     >>> from zope.component.tests.test_doctests import ITestType
+    >>> setUp()
 
     >>> class I5(Interface):
     ...     pass
@@ -175,6 +185,7 @@
     >>> iface = searchInterface(None, 'zope.component.interface.I5')
     >>> iface[0].__name__
     'I5'
+    >>> tearDown()
     """
     return [iface_util[1] for iface_util in
             searchInterfaceUtilities(context, search_string, base)]
@@ -185,7 +196,9 @@
 
     >>> from zope.interface import Interface
     >>> from zope.interface.interfaces import IInterface
+    >>> from zope.component.testing import setUp, tearDown
     >>> from zope.component.tests.test_doctests import ITestType
+    >>> setUp()
 
     >>> class I5(Interface):
     ...     pass
@@ -201,6 +214,7 @@
     >>> iface = searchInterfaceIds(None, 'zope.component.interface.I5')
     >>> iface
     [u'zope.component.interface.I5']
+    >>> tearDown()
     """
     return [iface_util[0] for iface_util in
             searchInterfaceUtilities(context, search_string, base)]

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-05-11 02:55:37 UTC (rev 125845)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_doctests.py	2012-05-11 02:55:41 UTC (rev 125846)
@@ -186,6 +186,8 @@
 def test_getGlobalSiteManager():
     """One of the most important functions is to get the global site manager.
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> from zope.component.interfaces import IComponentLookup
       >>> from zope.component.globalregistry import base
 
@@ -206,6 +208,7 @@
 
       >>> component.getGlobalSiteManager() is gsm
       True
+      >>> tearDown()
     """
 
 def test_getSiteManager():
@@ -215,6 +218,8 @@
     We don't know anything about the default service manager, except that it
     is an `IComponentLookup`.
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> from zope.component.interfaces import IComponentLookup
       >>> IComponentLookup.providedBy(component.getSiteManager())
       True
@@ -252,6 +257,7 @@
       ...
       ComponentLookupError: ('Could not adapt', <instance Ob>,
       <InterfaceClass zope...interfaces.IComponentLookup>)
+      >>> tearDown()
     """
 
 def testAdapterInContext(self):
@@ -263,6 +269,8 @@
     Let's start by creating a component that support's the PEP 246's
     `__conform__()` method:
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> class Component(object):
       ...     interface.implements(I1)
       ...     def __conform__(self, iface, default=None):
@@ -332,6 +340,7 @@
       43
       >>> component.queryAdapterInContext(ob, I3, context)
       43
+      >>> tearDown()
     """
 
 def testAdapter():
@@ -343,6 +352,8 @@
     If an adapter isn't registered for the given object and interface, and you
     provide no default, raise `ComponentLookupError`...
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> component.getAdapter(ob, I2, '') #doctest: +NORMALIZE_WHITESPACE
       Traceback (most recent call last):
       ...
@@ -378,6 +389,7 @@
       True
       >>> adapter.context is ob
       True
+      >>> tearDown()
     """
 
 def testInterfaceCall():
@@ -387,6 +399,8 @@
 
     First, we need to register an adapter:
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> component.getGlobalSiteManager().registerAdapter(
       ...     Comp, [I1], I2, '')
 
@@ -412,6 +426,7 @@
       >>> marker = object()
       >>> I2(object(), marker) is marker
       True
+      >>> tearDown()
     """
 
 def testNamedAdapter():
@@ -420,6 +435,8 @@
 
     First we register some named adapter:
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> component.getGlobalSiteManager().registerAdapter(
       ...     lambda x: 0, [I1], I2, 'foo')
 
@@ -450,6 +467,7 @@
       True
       >>> adapter.context is ob
       True
+      >>> tearDown()
     """
 
 def testMultiAdapter():
@@ -459,6 +477,8 @@
     this demonstration non-trivial, we need to create a second object to be
     adapted:
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> ob2 = Ob2()
 
     Like for regular adapters, if an adapter isn't registered for the given
@@ -505,12 +525,15 @@
       True
       >>> adapter.second is ob2
       True
+      >>> tearDown()
     """
 
 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, '')
 
@@ -528,6 +551,7 @@
       True
       >>> adapter.context is something
       True
+      >>> tearDown()
     """
 
 def testGetAdapters():
@@ -537,6 +561,8 @@
 
     Let's register some adapters first:
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> component.getGlobalSiteManager().registerAdapter(
       ...     Comp, [I1], I2, '')
       >>> component.getGlobalSiteManager().registerAdapter(
@@ -557,7 +583,7 @@
       >>> adapters = sorted(component.getAdapters((ob,), I2))
       >>> [(name, adapter.__class__.__name__) for name, adapter in adapters]
       [(u'', 'Comp'), (u'foo', 'Comp')]
-
+      >>> tearDown()
     """
 
 def testUtility():
@@ -569,6 +595,8 @@
     course. The pure instatiation of an object does not make it a utility. If
     you do not specify a default, you get a `ComponentLookupError`...
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> component.getUtility(I1) #doctest: +NORMALIZE_WHITESPACE
       Traceback (most recent call last):
       ...
@@ -590,6 +618,7 @@
 
       >>> component.getUtility(I1) is ob
       True
+      >>> tearDown()
     """
 
 def testNamedUtility():
@@ -597,6 +626,8 @@
 
     Just because you register an utility having no name
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> component.getGlobalSiteManager().registerUtility(ob, I1)
 
     does not mean that they are available when you specify a name:
@@ -623,6 +654,7 @@
 
       >>> component.getUtility(I1, 'foo') is ob
       True
+      >>> tearDown()
     """
 
 def test_getAllUtilitiesRegisteredFor():
@@ -632,6 +664,8 @@
 
     Thus, let's create a derivative interface of `I1`:
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> class I11(I1):
       ...     pass
 
@@ -655,6 +689,7 @@
       >>> uts = sorted([util.__class__.__name__ for util in uts])
       >>> uts
       ['Ob', 'Ob', 'Ob11']
+      >>> tearDown()
 
     Note that `getAllUtilitiesRegisteredFor()` does not return the names of
     the utilities.
@@ -666,6 +701,8 @@
 
     Both of those things emit `DeprecationWarnings`.
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> I2(ob) #doctest: +NORMALIZE_WHITESPACE
       Traceback (most recent call last):
       ...
@@ -676,6 +713,7 @@
 
       >>> I2(ob, 42)
       42
+      >>> tearDown()
     """
 
 
@@ -684,6 +722,8 @@
     We want to make sure that an `adapts()` call in a class definition
     doesn't affect instances.
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> class C:
       ...     component.adapts()
 
@@ -693,6 +733,7 @@
       Traceback (most recent call last):
       ...
       AttributeError: __component_adapts__
+      >>> tearDown()
     """
 
 def test_ability_to_pickle_globalsitemanager():
@@ -701,7 +742,9 @@
     and its two global adapter registries.
 
       >>> from zope.component import globalSiteManager
+      >>> from zope.component.testing import setUp, tearDown
       >>> import cPickle
+      >>> setUp()
       >>> pickle = cPickle.dumps(globalSiteManager)
       >>> sm = cPickle.loads(pickle)
       >>> sm is globalSiteManager
@@ -713,6 +756,7 @@
       >>> adapters = cPickle.loads(pickle)
       >>> adapters is globalSiteManager.adapters
       True
+      >>> tearDown()
     """
 
 def test_persistent_component_managers():
@@ -723,6 +767,8 @@
 Start by setting up a database and creating two transaction
 managers and database connections to work with.
 
+    >>> from zope.component.testing import setUp, tearDown
+    >>> setUp()
     >>> import ZODB.tests.util
     >>> db = ZODB.tests.util.DB()
     >>> import transaction
@@ -816,10 +862,13 @@
     >>> t2.abort()
 
     >>> db.close()
+    >>> tearDown()
     """
 
 def persistent_registry_doesnt_scew_up_subsribers():
     """
+    >>> from zope.component.testing import setUp, tearDown
+    >>> setUp()
     >>> import ZODB.tests.util
     >>> db = ZODB.tests.util.DB()
     >>> import transaction
@@ -850,7 +899,7 @@
     >>> len(list(r2[1].registeredSubscriptionAdapters()))
     1
     >>> t2.abort()
-
+    >>> tearDown()
     """
 
 
@@ -880,6 +929,8 @@
 
 We want to make sure that we see updates corrextly.
 
+    >>> from zope.component.testing import setUp, tearDown
+    >>> setUp()
     >>> len(base._v_subregistries)
     0
 
@@ -931,7 +982,7 @@
 
     >>> db.close()
     >>> clear_base()
-
+    >>> tearDown()
     """
 
 
@@ -941,6 +992,8 @@
     specification would all be removed when one of them was
     unregistered:
 
+    >>> from zope.component.testing import setUp, tearDown
+    >>> setUp()
     >>> class I(zope.interface.Interface):
     ...     pass
     >>> def factory1(event):
@@ -960,6 +1013,7 @@
     True
     >>> registry.handle(Event())
     | Factory 2 is here
+    >>> tearDown()
     """
 
 def test_next_utilities():
@@ -968,6 +1022,8 @@
     providing the same interface in one of the component registry's
     bases. Let's first create a global utility::
 
+      >>> from zope.component.testing import setUp, tearDown
+      >>> setUp()
       >>> import zope.interface
       >>> class IMyUtility(zope.interface.Interface):
       ...     pass
@@ -1058,6 +1114,7 @@
 
       >>> queryNextUtility(object(), IMyUtility, 'myutil', 'default')
       'default'
+      >>> tearDown()
     """
 
 def dont_leak_utility_registrations_in__subscribers():
@@ -1066,6 +1123,8 @@
     We've observed utilities getting left in _subscribers when they
     get unregistered.
 
+    >>> from zope.component.testing import setUp, tearDown
+    >>> setUp()
     >>> import zope.interface.registry
     >>> reg = zope.interface.registry.Components()
     >>> class C:
@@ -1090,7 +1149,7 @@
 
     >>> list(reg.getAllUtilitiesRegisteredFor(I1))
     [C(2)]
-
+    >>> tearDown()
     """
 
 def test_zcml_handler_site_manager():
@@ -1099,6 +1158,8 @@
     method to get the registry where to register the components. This makes
     possible to hook ``getSiteManager`` before loading a ZCML file:
 
+    >>> from zope.component.testing import setUp, tearDown
+    >>> setUp()
     >>> from zope.interface.registry import Components
     >>> registry = Components()
     >>> def dummy(context=None):
@@ -1112,7 +1173,7 @@
     >>> registry.getUtility(IApp) is comp
     True
     >>> ignore = getSiteManager.reset()
-
+    >>> tearDown()
     """
 
 class StandaloneTests(unittest.TestCase):



More information about the checkins mailing list