summaryrefslogtreecommitdiff
path: root/src/zope/component/tests/test_standalone.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/component/tests/test_standalone.py')
-rw-r--r--src/zope/component/tests/test_standalone.py79
1 files changed, 35 insertions, 44 deletions
diff --git a/src/zope/component/tests/test_standalone.py b/src/zope/component/tests/test_standalone.py
index efd0d87..2892f87 100644
--- a/src/zope/component/tests/test_standalone.py
+++ b/src/zope/component/tests/test_standalone.py
@@ -15,50 +15,41 @@
"""
import unittest
-try:
- import zope.security
-except ImportError:
- _HAS_ZOPE_SECURITY = False
-else:
- _HAS_ZOPE_SECURITY = True
+from zope.component.tests import skipIfNoSecurity
- class StandaloneTests(unittest.TestCase):
- def testStandalone(self):
- # See: https://bugs.launchpad.net/zope3/+bug/98401
- import subprocess
- import sys
- import os
- import pickle
+@skipIfNoSecurity
+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)
- try:
- pickle.dump(sys.path, process.stdin)
- process.stdin.close()
-
- try:
- rc = process.wait()
- except OSError as e:
- # MacIntel raises apparently unimportant EINTR?
- if e.errno != 4:
- raise # TODO verify sanity of a pass on EINTR :-/
- if rc != 0:
- output = process.stdout.read()
- if isinstance(output, bytes):
- output = output.decode()
- sys.stderr.write('#' * 80 + '\n')
- sys.stdout.write(output)
- sys.stderr.write('#' * 80 + '\n')
- self.fail('Output code: %d' % rc)
- finally:
- process.stdout.close()
+ 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)
+ try:
+ pickle.dump(sys.path, process.stdin)
+ process.stdin.close()
-def test_suite():
- if _HAS_ZOPE_SECURITY:
- return unittest.makeSuite(StandaloneTests)
- return unittest.TestSuite()
+ try:
+ rc = process.wait()
+ except OSError as e: # pragma: no cover
+ # MacIntel raises apparently unimportant EINTR?
+ if e.errno != 4:
+ raise # TODO verify sanity of a pass on EINTR :-/
+ if rc != 0: # pragma: no cover
+ output = process.stdout.read()
+ if isinstance(output, bytes):
+ output = output.decode()
+ sys.stderr.write('#' * 80 + '\n')
+ sys.stdout.write(output)
+ sys.stderr.write('#' * 80 + '\n')
+ self.fail('Output code: %d' % rc)
+ finally:
+ process.stdout.close()