summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/tests
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-06-02 15:58:43 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-06-02 15:58:43 (GMT)
commitabb4ec6dc484e6783541b1bcc88d03fe32357145 (patch)
treea6ab09d34dae2e56a5600885f3e72c193690631c /Lib/distutils/tests
parent36c3928fdc7d246fda50d48c108fb6116c315229 (diff)
downloadcpython-abb4ec6dc484e6783541b1bcc88d03fe32357145.zip
cpython-abb4ec6dc484e6783541b1bcc88d03fe32357145.tar.gz
cpython-abb4ec6dc484e6783541b1bcc88d03fe32357145.tar.bz2
improved distutils.spawn test coverage + cleaned it up
Diffstat (limited to 'Lib/distutils/tests')
-rw-r--r--Lib/distutils/tests/test_spawn.py42
1 files changed, 41 insertions, 1 deletions
diff --git a/Lib/distutils/tests/test_spawn.py b/Lib/distutils/tests/test_spawn.py
index 33e8bcf..b9fd610 100644
--- a/Lib/distutils/tests/test_spawn.py
+++ b/Lib/distutils/tests/test_spawn.py
@@ -1,8 +1,17 @@
"""Tests for distutils.spawn."""
import unittest
+import os
+import time
+from test.test_support import captured_stdout
+
from distutils.spawn import _nt_quote_args
+from distutils.spawn import spawn, find_executable
+from distutils.errors import DistutilsExecError
+from distutils.tests import support
-class SpawnTestCase(unittest.TestCase):
+class SpawnTestCase(support.TempdirManager,
+ support.LoggingSilencer,
+ unittest.TestCase):
def test_nt_quote_args(self):
@@ -13,6 +22,37 @@ class SpawnTestCase(unittest.TestCase):
res = _nt_quote_args(args)
self.assertEquals(res, wanted)
+
+ @unittest.skipUnless(os.name in ('nt', 'posix'),
+ 'Runs only under posix or nt')
+ def test_spawn(self):
+ tmpdir = self.mkdtemp()
+
+ # creating something executable
+ # through the shell that returns 1
+ if os.name == 'posix':
+ exe = os.path.join(tmpdir, 'foo.sh')
+ self.write_file(exe, '#!/bin/sh\nexit 1')
+ os.chmod(exe, 0777)
+ else:
+ exe = os.path.join(tmpdir, 'foo.bat')
+ self.write_file(exe, 'exit 1')
+
+ os.chmod(exe, 0777)
+ self.assertRaises(DistutilsExecError, spawn, [exe])
+
+ # now something that works
+ if os.name == 'posix':
+ exe = os.path.join(tmpdir, 'foo.sh')
+ self.write_file(exe, '#!/bin/sh\nexit 0')
+ os.chmod(exe, 0777)
+ else:
+ exe = os.path.join(tmpdir, 'foo.bat')
+ self.write_file(exe, 'exit 0')
+
+ os.chmod(exe, 0777)
+ spawn([exe]) # should work without any error
+
def test_suite():
return unittest.makeSuite(SpawnTestCase)