diff options
| author | Tres Seaver <tseaver@palladion.com> | 2015-02-25 10:20:23 -0500 |
|---|---|---|
| committer | Tres Seaver <tseaver@palladion.com> | 2015-02-25 10:20:23 -0500 |
| commit | 79b02a1cf780bef92392916084b6bd92bfa48bd6 (patch) | |
| tree | 37e44fcfc047c9fe166334636e5fd44e7865203d /src | |
| parent | 6c45e244f06805427955b07ac02dfe6a10c656ce (diff) | |
| download | zope-component-79b02a1cf780bef92392916084b6bd92bfa48bd6.tar.gz | |
Disable 'standalone' test when zope.security is missing.
Diffstat (limited to 'src')
| -rw-r--r-- | src/zope/component/tests/test_standalone.py | 77 |
1 files changed, 42 insertions, 35 deletions
diff --git a/src/zope/component/tests/test_standalone.py b/src/zope/component/tests/test_standalone.py index f4ac087..efd0d87 100644 --- a/src/zope/component/tests/test_standalone.py +++ b/src/zope/component/tests/test_standalone.py @@ -15,43 +15,50 @@ """ import unittest +try: + import zope.security +except ImportError: + _HAS_ZOPE_SECURITY = False +else: + _HAS_ZOPE_SECURITY = True -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() + 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: - rc = process.wait() - except OSError as e: - if e.errno != 4: # MacIntel raises apparently unimportant EINTR? - 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() + 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() def test_suite(): - return unittest.TestSuite(( - unittest.makeSuite(StandaloneTests), - )) + if _HAS_ZOPE_SECURITY: + return unittest.makeSuite(StandaloneTests) + return unittest.TestSuite() |
