diff options
-rw-r--r-- | Lib/test/support.py | 10 | ||||
-rw-r--r-- | Lib/test/test_subprocess.py | 2 | ||||
-rw-r--r-- | Lib/test/test_threading.py | 4 |
3 files changed, 13 insertions, 3 deletions
diff --git a/Lib/test/support.py b/Lib/test/support.py index 558fbc2..0372f16 100644 --- a/Lib/test/support.py +++ b/Lib/test/support.py @@ -1243,3 +1243,13 @@ def swap_item(obj, item, new_val): yield finally: del obj[item] + +def strip_python_stderr(stderr): + """Strip the stderr of a Python process from potential debug output + emitted by the interpreter. + + This will typically be run on the result of the communicate() method + of a subprocess.Popen object. + """ + stderr = re.sub(br"\[\d+ refs\]\r?\n?$", b"", stderr).strip() + return stderr diff --git a/Lib/test/test_subprocess.py b/Lib/test/test_subprocess.py index e6ba8cb..eb0f5d7 100644 --- a/Lib/test/test_subprocess.py +++ b/Lib/test/test_subprocess.py @@ -53,7 +53,7 @@ class BaseTestCase(unittest.TestCase): # 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 = re.sub("\[\d+ refs\]\r?\n?$", "", stderr.decode()).encode() + actual = support.strip_python_stderr(stderr) self.assertEqual(actual, expected, msg) diff --git a/Lib/test/test_threading.py b/Lib/test/test_threading.py index bf9f90d..39c5a17 100644 --- a/Lib/test/test_threading.py +++ b/Lib/test/test_threading.py @@ -1,7 +1,7 @@ # Very rudimentary test of threading module import test.support -from test.support import verbose +from test.support import verbose, strip_python_stderr import random import re import sys @@ -350,7 +350,7 @@ class ThreadTests(BaseTestCase): stdout, stderr = p.communicate() self.assertEqual(stdout.strip(), b"Woke up, sleep function is: <built-in function sleep>") - stderr = re.sub(br"^\[\d+ refs\]", b"", stderr, re.MULTILINE).strip() + stderr = strip_python_stderr(stderr) self.assertEqual(stderr, b"") def test_enumerate_after_join(self): |