[Checkins] SVN: zope.component/tseaver-test_cleanup/ Split example objects out of z.c.t.test_doctests.

Tres Seaver cvs-admin at zope.org
Thu Jun 21 21:03:48 UTC 2012


Log message for revision 126992:
  Split example objects out of z.c.t.test_doctests.
  
  Split out the 'standalone' test.

Changed:
  _U  zope.component/tseaver-test_cleanup/
  U   zope.component/tseaver-test_cleanup/docs/api/adapter.rst
  U   zope.component/tseaver-test_cleanup/docs/api/interface.rst
  U   zope.component/tseaver-test_cleanup/docs/api/sitemanager.rst
  U   zope.component/tseaver-test_cleanup/docs/api/utility.rst
  U   zope.component/tseaver-test_cleanup/docs/zcml.rst
  A   zope.component/tseaver-test_cleanup/src/zope/component/tests/examples.py
  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
  U   zope.component/tseaver-test_cleanup/src/zope/component/tests/test_security.py
  A   zope.component/tseaver-test_cleanup/src/zope/component/tests/test_standalone.py

-=-
Modified: zope.component/tseaver-test_cleanup/docs/api/adapter.rst
===================================================================
--- zope.component/tseaver-test_cleanup/docs/api/adapter.rst	2012-06-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/docs/api/adapter.rst	2012-06-21 21:03:45 UTC (rev 126992)
@@ -24,8 +24,8 @@
 .. doctest::
 
    >>> from zope.interface import implementer
-   >>> from zope.component.tests.test_doctests import I1
-   >>> from zope.component.tests.test_doctests import I2
+   >>> from zope.component.tests.examples import I1
+   >>> from zope.component.tests.examples import I2
    >>> @implementer(I1)
    ... class Component(object):
    ...     def __conform__(self, iface, default=None):
@@ -49,8 +49,7 @@
 
 .. doctest::
 
-   >>> from zope.component.tests.test_doctests \
-   ...      import ConformsToIComponentLookup
+   >>> from zope.component.tests.examples import ConformsToIComponentLookup
    >>> context = ConformsToIComponentLookup(sitemanager)
 
 If an object implements the interface you want to adapt to,
@@ -102,7 +101,7 @@
 
 .. doctest::
 
-   >>> from zope.component.tests.test_doctests import I3
+   >>> from zope.component.tests.examples import I3
    >>> sitemanager.registerAdapter(lambda x: 43, (I1,), I3, '')
    >>> getAdapterInContext(ob, I3, context)
    43
@@ -129,13 +128,13 @@
 
    >>> from zope.component import getAdapter
    >>> from zope.component import queryAdapter
-   >>> from zope.component.tests.test_doctests import I2
-   >>> from zope.component.tests.test_doctests import ob
+   >>> from zope.component.tests.examples import I2
+   >>> from zope.component.tests.examples import ob
    >>> getAdapter(ob, I2, '')
    Traceback (most recent call last):
    ...
    ComponentLookupError: (<instance Ob>,
-                          <InterfaceClass zope.component.tests.test_doctests.I2>,
+                          <InterfaceClass zope.component.tests.examples.I2>,
                           '')
    >>> queryAdapter(ob, I2, '', '<default>')
    '<default>'
@@ -146,7 +145,7 @@
 .. doctest::
 
    >>> from zope.component import getGlobalSiteManager
-   >>> from zope.component.tests.test_doctests import Comp
+   >>> from zope.component.tests.examples import Comp
    >>> gsm = getGlobalSiteManager()
    >>> gsm.registerAdapter(Comp, I1, I2, '')
    Traceback (most recent call last):
@@ -158,7 +157,7 @@
 .. doctest::
 
    >>> from zope.component import getGlobalSiteManager
-   >>> from zope.component.tests.test_doctests import Comp
+   >>> from zope.component.tests.examples import Comp
    >>> gsm = getGlobalSiteManager()
    >>> gsm.registerAdapter(Comp, (I1,), I2, '')
 
@@ -278,7 +277,7 @@
 
 .. doctest::
 
-   >>> from zope.component.tests.test_doctests import Ob2
+   >>> from zope.component.tests.examples import Ob2
    >>> ob2 = Ob2()
 
 As with regular adapters, if an adapter isn't registered for the given
@@ -293,7 +292,7 @@
    ...
    ComponentLookupError:
    ((<instance Ob>, <instance Ob2>),
-    <InterfaceClass zope.component.tests.test_doctests.I3>,
+    <InterfaceClass zope.component.tests.examples.I3>,
     u'')
 
 while the :func:`~zope.component.queryMultiAdapter` API returns the default:

Modified: zope.component/tseaver-test_cleanup/docs/api/interface.rst
===================================================================
--- zope.component/tseaver-test_cleanup/docs/api/interface.rst	2012-06-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/docs/api/interface.rst	2012-06-21 21:03:45 UTC (rev 126992)
@@ -19,7 +19,7 @@
 
    >>> from zope.interface import Interface
    >>> from zope.interface.interfaces import IInterface
-   >>> from zope.component.tests.test_doctests import ITestType
+   >>> from zope.component.tests.examples import ITestType
    >>> from zope.component import getGlobalSiteManager
    >>> gsm = getGlobalSiteManager()
 
@@ -74,22 +74,22 @@
 
    >>> from zope.interface import Interface
    >>> from zope.component.interface import getInterface
-   >>> from zope.component.tests.test_doctests import ITestType
-   >>> from zope.component.tests.test_doctests import IGI
+   >>> from zope.component.tests.examples import ITestType
+   >>> from zope.component.tests.examples import IGI
 
    >>> IInterface.providedBy(IGI)
    True
    >>> ITestType.providedBy(IGI)
    False
-   >>> getInterface(None, 'zope.component.tests.test_doctests.IGI')
+   >>> getInterface(None, 'zope.component.tests.examples.IGI')
    Traceback (most recent call last):
    ...
-   ComponentLookupError: zope.component.tests.test_doctests.interface.IGI
+   ComponentLookupError: zope.component.tests.examples.interface.IGI
    >>> provideInterface('', IGI, ITestType)
    >>> ITestType.providedBy(IGI)
    True
    >>> iface = getInterface(None,
-   ...                      'zope.component.tests.test_doctests.IGI')
+   ...                      'zope.component.tests.examples.IGI')
    >>> iface.__name__
    'IGI'
 
@@ -106,20 +106,20 @@
    >>> from zope.interface import Interface
    >>> from zope.interface.interfaces import IInterface
    >>> from zope.component.interface import queryInterface
-   >>> from zope.component.tests.test_doctests import ITestType
-   >>> from zope.component.tests.test_doctests import IQI
+   >>> from zope.component.tests.examples import ITestType
+   >>> from zope.component.tests.examples import IQI
 
    >>> IInterface.providedBy(IQI)
    True
    >>> ITestType.providedBy(IQI)
    False
-   >>> queryInterface('zope.component.tests.test_doctests.IQI') is None
+   >>> queryInterface('zope.component.tests.examples.IQI') is None
    True
    
    >>> provideInterface('', IQI, ITestType)
    >>> ITestType.providedBy(IQI)
    True
-   >>> iface = queryInterface('zope.component.tests.test_doctests.IQI')
+   >>> iface = queryInterface('zope.component.tests.examples.IQI')
    >>> iface.__name__
    'IQI'
 
@@ -136,19 +136,19 @@
     >>> from zope.interface import Interface
     >>> from zope.interface.interfaces import IInterface
     >>> from zope.component.interface import searchInterface
-    >>> from zope.component.tests.test_doctests import ITestType
-    >>> from zope.component.tests.test_doctests import ISI
+    >>> from zope.component.tests.examples import ITestType
+    >>> from zope.component.tests.examples import ISI
 
     >>> IInterface.providedBy(ISI)
     True
     >>> ITestType.providedBy(ISI)
     False
-    >>> searchInterface(None, 'zope.component.tests.test_doctests.ISI')
+    >>> searchInterface(None, 'zope.component.tests.examples.ISI')
     []
     >>> provideInterface('', ISI, ITestType)
     >>> ITestType.providedBy(ISI)
     True
-    >>> searchInterface(None, 'zope.component.tests.test_doctests.ISI') == [ISI]
+    >>> searchInterface(None, 'zope.component.tests.examples.ISI') == [ISI]
     True
 
 .. testcleanup::
@@ -163,20 +163,20 @@
    >>> from zope.interface import Interface
    >>> from zope.interface.interfaces import IInterface
    >>> from zope.component.interface import searchInterfaceIds
-   >>> from zope.component.tests.test_doctests import ITestType
-   >>> from zope.component.tests.test_doctests import ISII
+   >>> from zope.component.tests.examples import ITestType
+   >>> from zope.component.tests.examples import ISII
 
    >>> IInterface.providedBy(ISII)
    True
    >>> ITestType.providedBy(ISII)
    False
-   >>> searchInterfaceIds(None, 'zope.component.tests.test_doctests.ISII')
+   >>> searchInterfaceIds(None, 'zope.component.tests.examples.ISII')
    []
    >>> provideInterface('', ISII, ITestType)
    >>> ITestType.providedBy(ISII)
    True
-   >>> searchInterfaceIds(None, 'zope.component.tests.test_doctests.ISII')
-   [u'zope.component.tests.test_doctests.ISII']
+   >>> searchInterfaceIds(None, 'zope.component.tests.examples.ISII')
+   [u'zope.component.tests.examples.ISII']
 
 .. testcleanup::
 

Modified: zope.component/tseaver-test_cleanup/docs/api/sitemanager.rst
===================================================================
--- zope.component/tseaver-test_cleanup/docs/api/sitemanager.rst	2012-06-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/docs/api/sitemanager.rst	2012-06-21 21:03:45 UTC (rev 126992)
@@ -65,8 +65,7 @@
 
    .. doctest::
 
-     >>> from zope.component.tests.test_doctests \
-     ...    import ConformsToIComponentLookup
+     >>> from zope.component.tests.examples import ConformsToIComponentLookup
      >>> context = ConformsToIComponentLookup(sitemanager)
 
    Now make sure that the `getSiteManager()` API call returns the correct

Modified: zope.component/tseaver-test_cleanup/docs/api/utility.rst
===================================================================
--- zope.component/tseaver-test_cleanup/docs/api/utility.rst	2012-06-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/docs/api/utility.rst	2012-06-21 21:03:45 UTC (rev 126992)
@@ -22,12 +22,12 @@
 
    >>> from zope.component import getUtility
    >>> from zope.component import queryUtility
-   >>> from zope.component.tests.test_doctests import I1
+   >>> from zope.component.tests.examples import I1
    >>> getUtility(I1) #doctest: +NORMALIZE_WHITESPACE
    Traceback (most recent call last):
    ...
    ComponentLookupError: \
-   (<InterfaceClass zope.component.tests.test_doctests.I1>, '')
+   (<InterfaceClass zope.component.tests.examples.I1>, '')
 
 Otherwise, you get the default:
 
@@ -67,7 +67,7 @@
    Traceback (most recent call last):
    ...
    ComponentLookupError:
-   (<InterfaceClass zope.component.tests.test_doctests.I1>, 'foo')
+   (<InterfaceClass zope.component.tests.examples.I1>, 'foo')
 
    >>> queryUtility(I1, name='foo', default='<default>')
    '<default>'
@@ -113,9 +113,9 @@
 .. doctest::
 
    >>> from zope.interface import implementer
-   >>> from zope.component.tests.test_doctests import Comp
-   >>> from zope.component.tests.test_doctests import I2
-   >>> from zope.component.tests.test_doctests import Ob
+   >>> from zope.component.tests.examples import Comp
+   >>> from zope.component.tests.examples import I2
+   >>> from zope.component.tests.examples import Ob
    >>> class I11(I1):
    ...     pass
 
@@ -176,8 +176,7 @@
    >>> class IMyUtility(Interface):
    ...     pass
 
-   >>> from zope.component.tests.test_doctests \
-   ...    import ConformsToIComponentLookup
+   >>> from zope.component.tests.examples import ConformsToIComponentLookup
    >>> @implementer(IMyUtility)
    ... class MyUtility(ConformsToIComponentLookup):
    ...     def __init__(self, id, sm):
@@ -237,7 +236,7 @@
    Traceback (most recent call last):
    ...
    ComponentLookupError:
-   No more utilities for <InterfaceClass zope.component.tests.test_doctests.IMyUtility>,
+   No more utilities for <InterfaceClass zope.component.tests.examples.IMyUtility>,
    'myutil' have been found.
 
 You can also use `queryNextUtility` and specify a default:

Modified: zope.component/tseaver-test_cleanup/docs/zcml.rst
===================================================================
--- zope.component/tseaver-test_cleanup/docs/zcml.rst	2012-06-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/docs/zcml.rst	2012-06-21 21:03:45 UTC (rev 126992)
@@ -42,7 +42,7 @@
 
 .. doctest::
 
-   >>> from zope.component.tests.test_doctests import clearZCML
+   >>> from zope.component.tests.examples import clearZCML
    >>> clearZCML()
    >>> from zope.component.testfiles.components import IApp
    >>> IApp(Content(), None) is None
@@ -69,7 +69,7 @@
 
 .. doctest::
 
-   >>> from zope.component.tests.test_doctests import clearZCML
+   >>> from zope.component.tests.examples import clearZCML
    >>> clearZCML()
    >>> import zope.component
    >>> zope.component.queryAdapter(Content(), IApp, 'test') is None
@@ -1125,7 +1125,7 @@
 
 .. doctest::
 
-   >>> from zope.component.tests.test_doctests import ITestType
+   >>> from zope.component.tests.examples import ITestType
    >>> ITestType.providedBy(I)
    False
 
@@ -1140,7 +1140,7 @@
      <function provideInterface>,
      ('',
       <InterfaceClass __builtin__.I>,
-      <InterfaceClass zope.component.tests.test_doctests.ITestType>)),)
+      <InterfaceClass zope.component.tests.examples.ITestType>)),)
 
 ...it does provide ``ITestType``:
 

Added: zope.component/tseaver-test_cleanup/src/zope/component/tests/examples.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/examples.py	                        (rev 0)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/examples.py	2012-06-21 21:03:45 UTC (rev 126992)
@@ -0,0 +1,103 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002, 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Examples supporting Sphinx doctest snippets.
+"""
+from zope.interface import Interface
+from zope.interface import implementer
+from zope.interface.interfaces import IInterface
+
+from zope.component.testfiles.views import IC
+
+class ITestType(IInterface):
+    pass
+
+
+class I1(Interface):
+    pass
+
+class I2(Interface):
+    pass
+
+class I3(Interface):
+    pass
+
+class I4(Interface):
+    pass
+
+class IGI(Interface):
+    pass
+
+class IQI(Interface):
+    pass
+
+class ISI(Interface):
+    pass
+
+class ISII(Interface):
+    pass
+
+def noop(*args):
+    pass
+
+ at implementer(I1)
+class Ob(object):
+    def __repr__(self):
+        return '<instance Ob>'
+
+
+ob = Ob()
+
+ at implementer(I2)
+class Ob2(object):
+    def __repr__(self):
+        return '<instance Ob2>'
+
+ at implementer(IC)
+class Ob3(object):
+    pass
+
+ at implementer(I2)
+class Comp(object):
+    def __init__(self, context):
+        self.context = context
+
+comp = Comp(1)
+
+ at implementer(I3)
+class Comp2(object):
+    def __init__(self, context):
+        self.context = context
+
+
+class ConformsToIComponentLookup(object):
+    """Allow a dummy sitemanager to conform/adapt to `IComponentLookup`."""
+
+    def __init__(self, sitemanager):
+        self.sitemanager = sitemanager
+
+    def __conform__(self, interface):
+        """This method is specified by the adapter PEP to do the adaptation."""
+        from zope.component.interfaces import IComponentLookup
+        if interface is IComponentLookup:
+            return self.sitemanager
+
+
+def clearZCML(test=None):
+    from zope.configuration.xmlconfig import XMLConfig
+    import zope.component
+    from zope.component.testing import setUp
+    from zope.component.testing import tearDown
+    tearDown()
+    setUp()
+    XMLConfig('meta.zcml', zope.component)()

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-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test___init__.py	2012-06-21 21:03:45 UTC (rev 126992)
@@ -70,8 +70,7 @@
 
     def test_getSiteManager_w_conforming_context(self):
         from zope.component import getSiteManager
-        from zope.component.tests.test_doctests \
-            import ConformsToIComponentLookup
+        from zope.component.tests.examples import ConformsToIComponentLookup
         sitemanager = object()
         context = ConformsToIComponentLookup(sitemanager)
         self.assertTrue(getSiteManager(context) is sitemanager)
@@ -121,8 +120,7 @@
         from zope.interface import Interface
         from zope.component import getGlobalSiteManager
         from zope.component import getUtility
-        from zope.component.tests.test_doctests \
-            import ConformsToIComponentLookup
+        from zope.component.tests.examples import ConformsToIComponentLookup
         class SM(object):
             def __init__(self, obj):
                 self._obj = obj
@@ -191,8 +189,7 @@
         from zope.interface import Interface
         from zope.component import getGlobalSiteManager
         from zope.component import queryUtility
-        from zope.component.tests.test_doctests \
-            import ConformsToIComponentLookup
+        from zope.component.tests.examples import ConformsToIComponentLookup
         class SM(object):
             def __init__(self, obj):
                 self._obj = obj
@@ -331,8 +328,7 @@
         from zope.interface.registry import Components
         from zope.component import getGlobalSiteManager
         from zope.component import getAdapterInContext
-        from zope.component.tests.test_doctests \
-            import ConformsToIComponentLookup
+        from zope.component.tests.examples import ConformsToIComponentLookup
         class IFoo(Interface):
             pass
         class IBar(Interface):
@@ -565,8 +561,7 @@
         from zope.interface.registry import Components
         from zope.component import getGlobalSiteManager
         from zope.component import queryAdapter
-        from zope.component.tests.test_doctests \
-            import ConformsToIComponentLookup
+        from zope.component.tests.examples import ConformsToIComponentLookup
         class IFoo(Interface):
             pass
         class IBar(Interface):
@@ -832,8 +827,7 @@
         from zope.interface.registry import Components
         from zope.component import getGlobalSiteManager
         from zope.component import queryMultiAdapter
-        from zope.component.tests.test_doctests \
-            import ConformsToIComponentLookup
+        from zope.component.tests.examples import ConformsToIComponentLookup
         class IFoo(Interface):
             pass
         class IBar(Interface):
@@ -902,7 +896,7 @@
     global IMyUtility
     from zope.interface import Interface
     from zope.interface import implementer
-    from zope.component.tests.test_doctests import ConformsToIComponentLookup
+    from zope.component.tests.examples import ConformsToIComponentLookup
 
     if IMyUtility is None:
         class IMyUtility(Interface):

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-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_doctests.py	2012-06-21 21:03:45 UTC (rev 126992)
@@ -11,132 +11,12 @@
 # FOR A PARTICULAR PURPOSE.
 #
 ##############################################################################
-"""Component Architecture Tests
+"""Exercise doctests (until they are all gone).
 """
 import unittest
 
-from zope.interface import Interface
-from zope.interface import implementer
-from zope.interface.interfaces import IInterface
-
-from zope.component.testfiles.views import IC
-
-from zope.component.testing import setUp
-from zope.component.testing import tearDown
-
-# side effect gets component-based event dispatcher installed.
-# we should obviously make this more explicit
-import zope.component.event
-
-class ITestType(IInterface):
-    pass
-
-
-class I1(Interface):
-    pass
-
-class I2(Interface):
-    pass
-
-class I3(Interface):
-    pass
-
-class I4(Interface):
-    pass
-
-class IGI(Interface):
-    pass
-
-class IQI(Interface):
-    pass
-
-class ISI(Interface):
-    pass
-
-class ISII(Interface):
-    pass
-
-def noop(*args):
-    pass
-
- at implementer(I1)
-class Ob(object):
-    def __repr__(self):
-        return '<instance Ob>'
-
-
-ob = Ob()
-
- at implementer(I2)
-class Ob2(object):
-    def __repr__(self):
-        return '<instance Ob2>'
-
- at implementer(IC)
-class Ob3(object):
-    pass
-
- at implementer(I2)
-class Comp(object):
-    def __init__(self, context):
-        self.context = context
-
-comp = Comp(1)
-
- at implementer(I3)
-class Comp2(object):
-    def __init__(self, context):
-        self.context = context
-
-
-class ConformsToIComponentLookup(object):
-    """Allow a dummy sitemanager to conform/adapt to `IComponentLookup`."""
-
-    def __init__(self, sitemanager):
-        self.sitemanager = sitemanager
-
-    def __conform__(self, interface):
-        """This method is specified by the adapter PEP to do the adaptation."""
-        from zope.component.interfaces import IComponentLookup
-        if interface is IComponentLookup:
-            return self.sitemanager
-
-
-class StandaloneTests(unittest.TestCase):
-    def testStandalone(self):
-        # See: https://bugs.launchpad.net/zope3/+bug/98401
-        import subprocess
-        import sys
-        import os
-        import pickle
-
-        executable = os.path.abspath(sys.executable)
-        where = os.path.dirname(os.path.dirname(__file__))
-        program = os.path.join(where, 'standalonetests.py')
-        process = subprocess.Popen([executable, program],
-                                   stdout=subprocess.PIPE,
-                                   stderr=subprocess.STDOUT,
-                                   stdin=subprocess.PIPE)
-        pickle.dump(sys.path, process.stdin)
-        process.stdin.close()
-
-        try:
-            rc = process.wait()
-        except OSError, e:
-            if e.errno != 4: # MacIntel raises apparently unimportant EINTR?
-                raise # TODO verify sanity of a pass on EINTR :-/
-        self.assertEqual(rc, 0)
-
-def clearZCML(test=None):
-    from zope.configuration.xmlconfig import XMLConfig
-    import zope.component
-    tearDown()
-    setUp()
-    XMLConfig('meta.zcml', zope.component)()
-
 def test_suite():
     import doctest
     return unittest.TestSuite((
         doctest.DocTestSuite('zope.component.nexttesting'),
-        unittest.makeSuite(StandaloneTests),
-        ))
+    ))

Modified: zope.component/tseaver-test_cleanup/src/zope/component/tests/test_security.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test_security.py	2012-06-21 21:03:41 UTC (rev 126991)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_security.py	2012-06-21 21:03:45 UTC (rev 126992)
@@ -22,7 +22,7 @@
 from zope.component.testfiles.views import R1
 from zope.component.testfiles.views import IR
 
-from zope.component.tests.test_doctests import Ob3 #XXX
+from zope.component.tests.examples import Ob3 #XXX
 
 
 _ZCML_TEMPLATE = """<configure

Added: zope.component/tseaver-test_cleanup/src/zope/component/tests/test_standalone.py
===================================================================
--- zope.component/tseaver-test_cleanup/src/zope/component/tests/test_standalone.py	                        (rev 0)
+++ zope.component/tseaver-test_cleanup/src/zope/component/tests/test_standalone.py	2012-06-21 21:03:45 UTC (rev 126992)
@@ -0,0 +1,47 @@
+##############################################################################
+#
+# Copyright (c) 2001, 2002, 2009 Zope Foundation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Component Architecture Tests
+"""
+import unittest
+
+
+class StandaloneTests(unittest.TestCase):
+    def testStandalone(self):
+        # See: https://bugs.launchpad.net/zope3/+bug/98401
+        import subprocess
+        import sys
+        import os
+        import pickle
+
+        executable = os.path.abspath(sys.executable)
+        where = os.path.dirname(os.path.dirname(__file__))
+        program = os.path.join(where, 'standalonetests.py')
+        process = subprocess.Popen([executable, program],
+                                   stdout=subprocess.PIPE,
+                                   stderr=subprocess.STDOUT,
+                                   stdin=subprocess.PIPE)
+        pickle.dump(sys.path, process.stdin)
+        process.stdin.close()
+
+        try:
+            rc = process.wait()
+        except OSError, e:
+            if e.errno != 4: # MacIntel raises apparently unimportant EINTR?
+                raise # TODO verify sanity of a pass on EINTR :-/
+        self.assertEqual(rc, 0)
+
+def test_suite():
+    return unittest.TestSuite((
+        unittest.makeSuite(StandaloneTests),
+    ))



More information about the checkins mailing list