Merged revisions 73147 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r73147 | tarek.ziade | 2009-06-02 17:58:43 +0200 (Tue, 02 Jun 2009) | 1 line

  improved distutils.spawn test coverage + cleaned it up
........
This commit is contained in:
Tarek Ziadé 2009-06-02 16:18:55 +00:00
parent 60fe6b045a
commit 861d644929
2 changed files with 64 additions and 25 deletions

View file

@ -1,8 +1,17 @@
"""Tests for distutils.spawn."""
import unittest
from distutils.spawn import _nt_quote_args
import os
import time
from test.support import captured_stdout
class SpawnTestCase(unittest.TestCase):
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(support.TempdirManager,
support.LoggingSilencer,
unittest.TestCase):
def test_nt_quote_args(self):
@ -13,6 +22,35 @@ 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')
else:
exe = os.path.join(tmpdir, 'foo.bat')
self.write_file(exe, 'exit 1')
os.chmod(exe, 0o777)
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')
else:
exe = os.path.join(tmpdir, 'foo.bat')
self.write_file(exe, 'exit 0')
os.chmod(exe, 0o777)
spawn([exe]) # should work without any error
def test_suite():
return unittest.makeSuite(SpawnTestCase)