bpo-38991: Remove test.support.strip_python_stderr() (GH-17490)
test.support: run_python_until_end(), assert_python_ok() and
assert_python_failure() functions no longer strip whitespaces from
stderr.
diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py
index 97dc09c..f806be8 100644
--- a/Lib/test/test_subprocess.py
+++ b/Lib/test/test_subprocess.py
@@ -85,15 +85,6 @@
self.doCleanups()
support.reap_children()
- def assertStderrEqual(self, stderr, expected, msg=None):
- # In a debug build, stuff like "[6580 refs]" is printed to stderr at
- # shutdown time. That frustrates tests trying to check stderr produced
- # from a spawned Python process.
- actual = support.strip_python_stderr(stderr)
- # strip_python_stderr also strips whitespace, so we do too.
- expected = expected.strip()
- self.assertEqual(actual, expected, msg)
-
class PopenTestException(Exception):
pass
@@ -547,7 +538,7 @@
'import sys; sys.stderr.write("strawberry")'],
stderr=subprocess.PIPE)
with p:
- self.assertStderrEqual(p.stderr.read(), b"strawberry")
+ self.assertEqual(p.stderr.read(), b"strawberry")
def test_stderr_filedes(self):
# stderr is set to open file descriptor
@@ -559,7 +550,7 @@
stderr=d)
p.wait()
os.lseek(d, 0, 0)
- self.assertStderrEqual(os.read(d, 1024), b"strawberry")
+ self.assertEqual(os.read(d, 1024), b"strawberry")
def test_stderr_fileobj(self):
# stderr is set to open file object
@@ -570,7 +561,7 @@
stderr=tf)
p.wait()
tf.seek(0)
- self.assertStderrEqual(tf.read(), b"strawberry")
+ self.assertEqual(tf.read(), b"strawberry")
def test_stderr_redirect_with_no_stdout_redirect(self):
# test stderr=STDOUT while stdout=None (not set)
@@ -589,8 +580,8 @@
stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
#NOTE: stdout should get stderr from grandchild
- self.assertStderrEqual(stdout, b'42')
- self.assertStderrEqual(stderr, b'') # should be empty
+ self.assertEqual(stdout, b'42')
+ self.assertEqual(stderr, b'') # should be empty
self.assertEqual(p.returncode, 0)
def test_stdout_stderr_pipe(self):
@@ -603,7 +594,7 @@
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
with p:
- self.assertStderrEqual(p.stdout.read(), b"appleorange")
+ self.assertEqual(p.stdout.read(), b"appleorange")
def test_stdout_stderr_file(self):
# capture stdout and stderr to the same open file
@@ -618,7 +609,7 @@
stderr=tf)
p.wait()
tf.seek(0)
- self.assertStderrEqual(tf.read(), b"appleorange")
+ self.assertEqual(tf.read(), b"appleorange")
def test_stdout_filedes_of_stdout(self):
# stdout is set to 1 (#1531862).
@@ -767,7 +758,7 @@
stderr=subprocess.PIPE)
(stdout, stderr) = p.communicate()
self.assertEqual(stdout, None)
- self.assertStderrEqual(stderr, b"pineapple")
+ self.assertEqual(stderr, b"pineapple")
def test_communicate(self):
p = subprocess.Popen([sys.executable, "-c",
@@ -782,7 +773,7 @@
self.addCleanup(p.stdin.close)
(stdout, stderr) = p.communicate(b"banana")
self.assertEqual(stdout, b"banana")
- self.assertStderrEqual(stderr, b"pineapple")
+ self.assertEqual(stderr, b"pineapple")
def test_communicate_timeout(self):
p = subprocess.Popen([sys.executable, "-c",
@@ -801,7 +792,7 @@
# after it completes.
(stdout, stderr) = p.communicate()
self.assertEqual(stdout, "banana")
- self.assertStderrEqual(stderr.encode(), b"pineapple\npear\n")
+ self.assertEqual(stderr.encode(), b"pineapple\npear\n")
def test_communicate_timeout_large_output(self):
# Test an expiring timeout while the child is outputting lots of data.
@@ -887,7 +878,7 @@
p.stdin.write(b"banana")
(stdout, stderr) = p.communicate(b"split")
self.assertEqual(stdout, b"bananasplit")
- self.assertStderrEqual(stderr, b"")
+ self.assertEqual(stderr, b"")
def test_universal_newlines_and_text(self):
args = [
@@ -1005,7 +996,6 @@
self.assertEqual("line1\nline2\nline3\nline4\nline5\n", stdout)
# Python debug build push something like "[42442 refs]\n"
# to stderr at exit of subprocess.
- # Don't use assertStderrEqual because it strips CR and LF from output.
self.assertTrue(stderr.startswith("eline2\neline6\neline7\n"))
def test_universal_newlines_communicate_encodings(self):
@@ -2240,13 +2230,13 @@
def test_kill(self):
p = self._kill_process('kill')
_, stderr = p.communicate()
- self.assertStderrEqual(stderr, b'')
+ self.assertEqual(stderr, b'')
self.assertEqual(p.wait(), -signal.SIGKILL)
def test_terminate(self):
p = self._kill_process('terminate')
_, stderr = p.communicate()
- self.assertStderrEqual(stderr, b'')
+ self.assertEqual(stderr, b'')
self.assertEqual(p.wait(), -signal.SIGTERM)
def test_send_signal_dead(self):
@@ -2294,8 +2284,8 @@
stdin=stdin,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE).communicate()
- err = support.strip_python_stderr(err)
- self.assertEqual((out, err), (b'apple', b'orange'))
+ self.assertEqual(out, b'apple')
+ self.assertEqual(err, b'orange')
finally:
self._restore_fds(saved_fds)
@@ -2380,7 +2370,7 @@
os.lseek(fd, 0, 0)
out = os.read(temp_fds[2], 1024)
- err = support.strip_python_stderr(os.read(temp_fds[0], 1024))
+ err = os.read(temp_fds[0], 1024).strip()
self.assertEqual(out, b"got STDIN")
self.assertEqual(err, b"err")
@@ -2422,7 +2412,7 @@
os.lseek(fd, 0, 0)
out = os.read(stdout_no, 1024)
- err = support.strip_python_stderr(os.read(stderr_no, 1024))
+ err = os.read(stderr_no, 1024).strip()
finally:
self._restore_fds(saved_fds)
@@ -3338,7 +3328,7 @@
p.stdout.read(1)
getattr(p, method)(*args)
_, stderr = p.communicate()
- self.assertStderrEqual(stderr, b'')
+ self.assertEqual(stderr, b'')
returncode = p.wait()
self.assertNotEqual(returncode, 0)
@@ -3361,7 +3351,7 @@
# This shouldn't raise even though the child is now dead
getattr(p, method)(*args)
_, stderr = p.communicate()
- self.assertStderrEqual(stderr, b'')
+ self.assertEqual(stderr, b'')
rc = p.wait()
self.assertEqual(rc, 42)
@@ -3550,7 +3540,7 @@
stdout=subprocess.PIPE,
stderr=subprocess.PIPE) as proc:
self.assertEqual(proc.stdout.read(), b"stdout")
- self.assertStderrEqual(proc.stderr.read(), b"stderr")
+ self.assertEqual(proc.stderr.read(), b"stderr")
self.assertTrue(proc.stdout.closed)
self.assertTrue(proc.stderr.closed)