diff options
Diffstat (limited to 'src/zope/component/tests/test_standalone.py')
-rw-r--r-- | src/zope/component/tests/test_standalone.py | 79 |
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() |