Wrap long lines.

This commit is contained in:
Tim Peters 2004-10-12 22:19:32 +00:00
parent e718f615b8
commit 3b01a70f76
1 changed files with 67 additions and 43 deletions

View File

@ -14,7 +14,8 @@ mswindows = (sys.platform == "win32")
#
if mswindows:
SETBINARY = 'import msvcrt; msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY);'
SETBINARY = ('import msvcrt; msvcrt.setmode(sys.stdout.fileno(), '
'os.O_BINARY);')
else:
SETBINARY = ''
@ -32,7 +33,8 @@ class ProcessTestCase(unittest.TestCase):
#
def test_call_seq(self):
"""call() function with sequence argument"""
rc = subprocess.call([sys.executable, "-c", "import sys; sys.exit(47)"])
rc = subprocess.call([sys.executable, "-c",
"import sys; sys.exit(47)"])
self.assertEqual(rc, 47)
def test_call_kwargs(self):
@ -68,8 +70,9 @@ class ProcessTestCase(unittest.TestCase):
def test_executable(self):
"""executable"""
p = subprocess.Popen(["somethingyoudonthave", "-c", "import sys; sys.exit(47)"],
executable=sys.executable)
p = subprocess.Popen(["somethingyoudonthave",
"-c", "import sys; sys.exit(47)"],
executable=sys.executable)
p.wait()
self.assertEqual(p.returncode, 47)
@ -215,14 +218,17 @@ class ProcessTestCase(unittest.TestCase):
'import sys,os;' \
'sys.stderr.write("pineapple");' \
'sys.stdout.write(sys.stdin.read())'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate("banana")
self.assertEqual(stdout, "banana")
self.assertEqual(stderr, "pineapple")
def test_communicate_returns(self):
"""communicate() should return None if no redirection is active"""
p = subprocess.Popen([sys.executable, "-c", "import sys; sys.exit(47)"])
p = subprocess.Popen([sys.executable, "-c",
"import sys; sys.exit(47)"])
(stdout, stderr) = p.communicate()
self.assertEqual(stdout, None)
self.assertEqual(stderr, None)
@ -243,7 +249,9 @@ class ProcessTestCase(unittest.TestCase):
'sys.stdout.write(sys.stdin.read(47));' \
'sys.stderr.write("xyz"*%d);' \
'sys.stdout.write(sys.stdin.read())' % pipe_buf],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
string_to_write = "abc"*pipe_buf
(stdout, stderr) = p.communicate(string_to_write)
self.assertEqual(stdout, string_to_write)
@ -253,7 +261,9 @@ class ProcessTestCase(unittest.TestCase):
p = subprocess.Popen([sys.executable, "-c",
'import sys,os;' \
'sys.stdout.write(sys.stdin.read())'],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
p.stdin.write("banana")
(stdout, stderr) = p.communicate("split")
self.assertEqual(stdout, "bananasplit")
@ -262,49 +272,52 @@ class ProcessTestCase(unittest.TestCase):
def test_universal_newlines(self):
"""universal newlines"""
p = subprocess.Popen([sys.executable, "-c",
'import sys,os;' + SETBINARY + \
'sys.stdout.write("line1\\n");' \
'sys.stdout.flush();' \
'sys.stdout.write("line2\\r");' \
'sys.stdout.flush();' \
'sys.stdout.write("line3\\r\\n");' \
'sys.stdout.flush();' \
'sys.stdout.write("line4\\r");' \
'sys.stdout.flush();' \
'import sys,os;' + SETBINARY +
'sys.stdout.write("line1\\n");'
'sys.stdout.flush();'
'sys.stdout.write("line2\\r");'
'sys.stdout.flush();'
'sys.stdout.write("line3\\r\\n");'
'sys.stdout.flush();'
'sys.stdout.write("line4\\r");'
'sys.stdout.flush();'
'sys.stdout.write("\\nline5");'
'sys.stdout.flush();' \
'sys.stdout.flush();'
'sys.stdout.write("\\nline6");'],
stdout=subprocess.PIPE,
universal_newlines=1)
stdout = p.stdout.read()
if hasattr(open, 'newlines'):
# Interpreter with universal newline support
self.assertEqual(stdout, "line1\nline2\nline3\nline4\nline5\nline6")
self.assertEqual(stdout,
"line1\nline2\nline3\nline4\nline5\nline6")
else:
# Interpreter without universal newline support
self.assertEqual(stdout, "line1\nline2\rline3\r\nline4\r\nline5\nline6")
self.assertEqual(stdout,
"line1\nline2\rline3\r\nline4\r\nline5\nline6")
def test_universal_newlines_communicate(self):
"""universal newlines through communicate()"""
p = subprocess.Popen([sys.executable, "-c",
'import sys,os;' + SETBINARY + \
'sys.stdout.write("line1\\n");' \
'sys.stdout.flush();' \
'sys.stdout.write("line2\\r");' \
'sys.stdout.flush();' \
'sys.stdout.write("line3\\r\\n");' \
'sys.stdout.flush();' \
'sys.stdout.write("line4\\r");' \
'sys.stdout.flush();' \
'import sys,os;' + SETBINARY +
'sys.stdout.write("line1\\n");'
'sys.stdout.flush();'
'sys.stdout.write("line2\\r");'
'sys.stdout.flush();'
'sys.stdout.write("line3\\r\\n");'
'sys.stdout.flush();'
'sys.stdout.write("line4\\r");'
'sys.stdout.flush();'
'sys.stdout.write("\\nline5");'
'sys.stdout.flush();' \
'sys.stdout.flush();'
'sys.stdout.write("\\nline6");'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
universal_newlines=1)
(stdout, stderr) = p.communicate()
if hasattr(open, 'newlines'):
# Interpreter with universal newline support
self.assertEqual(stdout, "line1\nline2\nline3\nline4\nline5\nline6")
self.assertEqual(stdout,
"line1\nline2\nline3\nline4\nline5\nline6")
else:
# Interpreter without universal newline support
self.assertEqual(stdout, "line1\nline2\rline3\r\nline4\r\nline5\nline6")
@ -312,8 +325,11 @@ class ProcessTestCase(unittest.TestCase):
def test_no_leaking(self):
"""Make sure we leak no resources"""
for i in range(1026):
p = subprocess.Popen([sys.executable, "-c", "import sys;sys.stdout.write(sys.stdin.read())"],
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p = subprocess.Popen([sys.executable, "-c",
"import sys;sys.stdout.write(sys.stdin.read())"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
data = p.communicate("lime")[0]
self.assertEqual(data, "lime")
@ -373,7 +389,8 @@ class ProcessTestCase(unittest.TestCase):
def test_run_abort(self):
"""returncode handles signal termination"""
p = subprocess.Popen([sys.executable, "-c", "import os; os.abort()"])
p = subprocess.Popen([sys.executable,
"-c", "import os; os.abort()"])
p.wait()
self.assertEqual(-p.returncode, signal.SIGABRT)
@ -401,7 +418,8 @@ class ProcessTestCase(unittest.TestCase):
"""args is a string"""
f, fname = self.mkstemp()
os.write(f, "#!/bin/sh\n")
os.write(f, "exec %s -c 'import sys; sys.exit(47)'\n" % sys.executable)
os.write(f, "exec %s -c 'import sys; sys.exit(47)'\n" %
sys.executable)
os.close(f)
os.chmod(fname, 0700)
p = subprocess.Popen(fname)
@ -412,10 +430,12 @@ class ProcessTestCase(unittest.TestCase):
def test_invalid_args(self):
"""invalid arguments should raise ValueError"""
self.assertRaises(ValueError, subprocess.call,
[sys.executable, "-c", "import sys; sys.exit(47)"],
[sys.executable,
"-c", "import sys; sys.exit(47)"],
startupinfo=47)
self.assertRaises(ValueError, subprocess.call,
[sys.executable, "-c", "import sys; sys.exit(47)"],
[sys.executable,
"-c", "import sys; sys.exit(47)"],
creationflags=47)
def test_shell_sequence(self):
@ -440,7 +460,8 @@ class ProcessTestCase(unittest.TestCase):
"""call() function with string argument on UNIX"""
f, fname = self.mkstemp()
os.write(f, "#!/bin/sh\n")
os.write(f, "exec %s -c 'import sys; sys.exit(47)'\n" % sys.executable)
os.write(f, "exec %s -c 'import sys; sys.exit(47)'\n" %
sys.executable)
os.close(f)
os.chmod(fname, 0700)
rc = subprocess.call(fname)
@ -469,16 +490,19 @@ class ProcessTestCase(unittest.TestCase):
def test_creationflags(self):
"""creationflags argument"""
CREATE_NEW_CONSOLE = 16
subprocess.call(sys.executable + ' -c "import time; time.sleep(2)"',
subprocess.call(sys.executable +
' -c "import time; time.sleep(2)"',
creationflags=CREATE_NEW_CONSOLE)
def test_invalid_args(self):
"""invalid arguments should raise ValueError"""
self.assertRaises(ValueError, subprocess.call,
[sys.executable, "-c", "import sys; sys.exit(47)"],
[sys.executable,
"-c", "import sys; sys.exit(47)"],
preexec_fn=lambda: 1)
self.assertRaises(ValueError, subprocess.call,
[sys.executable, "-c", "import sys; sys.exit(47)"],
[sys.executable,
"-c", "import sys; sys.exit(47)"],
close_fds=True)
def test_shell_sequence(self):
@ -501,11 +525,11 @@ class ProcessTestCase(unittest.TestCase):
def test_call_string(self):
"""call() function with string argument on Windows"""
rc = subprocess.call(sys.executable + ' -c "import sys; sys.exit(47)"')
rc = subprocess.call(sys.executable +
' -c "import sys; sys.exit(47)"')
self.assertEqual(rc, 47)
def test_main():
test_support.run_unittest(ProcessTestCase)