[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