[Python-checkins] cpython (merge 3.3 -> default): Issue #20373: generalize use of test.script_helper in test_warnings. Patch by

antoine.pitrou python-checkins at python.org
Wed Jan 29 23:45:17 CET 2014


http://hg.python.org/cpython/rev/04b658b3fe7c
changeset:   88830:04b658b3fe7c
parent:      88828:cb5448352e11
parent:      88829:d844b31471b5
user:        Antoine Pitrou <solipsis at pitrou.net>
date:        Wed Jan 29 23:45:07 2014 +0100
summary:
  Issue #20373: generalize use of test.script_helper in test_warnings.  Patch by Arfrever.

files:
  Lib/test/test_warnings.py |  65 +++++++++-----------------
  1 files changed, 22 insertions(+), 43 deletions(-)


diff --git a/Lib/test/test_warnings.py b/Lib/test/test_warnings.py
--- a/Lib/test/test_warnings.py
+++ b/Lib/test/test_warnings.py
@@ -4,7 +4,6 @@
 from io import StringIO
 import sys
 import unittest
-import subprocess
 from test import support
 from test.script_helper import assert_python_ok
 
@@ -732,47 +731,34 @@
 class EnvironmentVariableTests(BaseTest):
 
     def test_single_warning(self):
-        newenv = os.environ.copy()
-        newenv["PYTHONWARNINGS"] = "ignore::DeprecationWarning"
-        p = subprocess.Popen([sys.executable,
-                "-c", "import sys; sys.stdout.write(str(sys.warnoptions))"],
-                stdout=subprocess.PIPE, env=newenv)
-        self.assertEqual(p.communicate()[0], b"['ignore::DeprecationWarning']")
-        self.assertEqual(p.wait(), 0)
+        rc, stdout, stderr = assert_python_ok("-c",
+            "import sys; sys.stdout.write(str(sys.warnoptions))",
+            PYTHONWARNINGS="ignore::DeprecationWarning")
+        self.assertEqual(stdout, b"['ignore::DeprecationWarning']")
 
     def test_comma_separated_warnings(self):
-        newenv = os.environ.copy()
-        newenv["PYTHONWARNINGS"] = ("ignore::DeprecationWarning,"
-                                    "ignore::UnicodeWarning")
-        p = subprocess.Popen([sys.executable,
-                "-c", "import sys; sys.stdout.write(str(sys.warnoptions))"],
-                stdout=subprocess.PIPE, env=newenv)
-        self.assertEqual(p.communicate()[0],
-                b"['ignore::DeprecationWarning', 'ignore::UnicodeWarning']")
-        self.assertEqual(p.wait(), 0)
+        rc, stdout, stderr = assert_python_ok("-c",
+            "import sys; sys.stdout.write(str(sys.warnoptions))",
+            PYTHONWARNINGS="ignore::DeprecationWarning,ignore::UnicodeWarning")
+        self.assertEqual(stdout,
+            b"['ignore::DeprecationWarning', 'ignore::UnicodeWarning']")
 
     def test_envvar_and_command_line(self):
-        newenv = os.environ.copy()
-        newenv["PYTHONWARNINGS"] = "ignore::DeprecationWarning"
-        p = subprocess.Popen([sys.executable, "-W" "ignore::UnicodeWarning",
-                "-c", "import sys; sys.stdout.write(str(sys.warnoptions))"],
-                stdout=subprocess.PIPE, env=newenv)
-        self.assertEqual(p.communicate()[0],
-                b"['ignore::UnicodeWarning', 'ignore::DeprecationWarning']")
-        self.assertEqual(p.wait(), 0)
+        rc, stdout, stderr = assert_python_ok("-Wignore::UnicodeWarning", "-c",
+            "import sys; sys.stdout.write(str(sys.warnoptions))",
+            PYTHONWARNINGS="ignore::DeprecationWarning")
+        self.assertEqual(stdout,
+            b"['ignore::UnicodeWarning', 'ignore::DeprecationWarning']")
 
     @unittest.skipUnless(sys.getfilesystemencoding() != 'ascii',
                          'requires non-ascii filesystemencoding')
     def test_nonascii(self):
-        newenv = os.environ.copy()
-        newenv["PYTHONWARNINGS"] = "ignore:DeprecaciónWarning"
-        newenv["PYTHONIOENCODING"] = "utf-8"
-        p = subprocess.Popen([sys.executable,
-                "-c", "import sys; sys.stdout.write(str(sys.warnoptions))"],
-                stdout=subprocess.PIPE, env=newenv)
-        self.assertEqual(p.communicate()[0],
-                "['ignore:DeprecaciónWarning']".encode('utf-8'))
-        self.assertEqual(p.wait(), 0)
+        rc, stdout, stderr = assert_python_ok("-c",
+            "import sys; sys.stdout.write(str(sys.warnoptions))",
+            PYTHONIOENCODING="utf-8",
+            PYTHONWARNINGS="ignore:DeprecaciónWarning")
+        self.assertEqual(stdout,
+            "['ignore:DeprecaciónWarning']".encode('utf-8'))
 
 class CEnvironmentVariableTests(EnvironmentVariableTests, unittest.TestCase):
     module = c_warnings
@@ -787,18 +773,11 @@
         # or not completely loaded (warnings imports indirectly encodings by
         # importing linecache) yet
         with support.temp_cwd() as cwd, support.temp_cwd('encodings'):
-            env = os.environ.copy()
-            env['PYTHONPATH'] = cwd
-
             # encodings loaded by initfsencoding()
-            retcode = subprocess.call([sys.executable, '-c', 'pass'], env=env)
-            self.assertEqual(retcode, 0)
+            assert_python_ok('-c', 'pass', PYTHONPATH=cwd)
 
             # Use -W to load warnings module at startup
-            retcode = subprocess.call(
-                [sys.executable, '-c', 'pass', '-W', 'always'],
-                env=env)
-            self.assertEqual(retcode, 0)
+            assert_python_ok('-c', 'pass', '-W', 'always', PYTHONPATH=cwd)
 
 class FinalizationTest(unittest.TestCase):
     def test_finalization(self):

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list