[pypy-commit] pypy app_main-refactor: fix test_pythonwarnings

antocuni noreply at buildbot.pypy.org
Fri Jun 8 17:33:19 CEST 2012


Author: Antonio Cuni <anto.cuni at gmail.com>
Branch: app_main-refactor
Changeset: r55513:0ab5f2e359c6
Date: 2012-06-08 17:11 +0200
http://bitbucket.org/pypy/pypy/changeset/0ab5f2e359c6/

Log:	fix test_pythonwarnings

diff --git a/pypy/translator/goal/app_main.py b/pypy/translator/goal/app_main.py
--- a/pypy/translator/goal/app_main.py
+++ b/pypy/translator/goal/app_main.py
@@ -735,6 +735,9 @@
     if 'PYTHONINSPECT_' in os.environ:
         reset.append(('PYTHONINSPECT', os.environ.get('PYTHONINSPECT', '')))
         os.environ['PYTHONINSPECT'] = os.environ['PYTHONINSPECT_']
+    if 'PYTHONWARNINGS_' in os.environ:
+        reset.append(('PYTHONWARNINGS', os.environ.get('PYTHONWARNINGS', '')))
+        os.environ['PYTHONWARNINGS'] = os.environ['PYTHONWARNINGS_']
 
     # no one should change to which lists sys.argv and sys.path are bound
     old_argv = sys.argv
diff --git a/pypy/translator/goal/test2/test_app_main.py b/pypy/translator/goal/test2/test_app_main.py
--- a/pypy/translator/goal/test2/test_app_main.py
+++ b/pypy/translator/goal/test2/test_app_main.py
@@ -618,15 +618,14 @@
         finally:
             os.environ['PYTHONSTARTUP'] = old
 
-    def test_pythonwarnings(self):
-        old = os.environ.get('PYTHONWARNINGS', '')
-        try:
-            os.environ['PYTHONWARNINGS'] = "once,error"
-            data = self.run('-W ignore -W default '
-                            '-c "import sys; print sys.warnoptions"')
-            assert "['ignore', 'default', 'once', 'error']" in data
-        finally:
-            os.environ['PYTHONWARNINGS'] = old
+    def test_pythonwarnings(self, monkeypatch):
+        # PYTHONWARNINGS_ is special cased by app_main: we cannot directly set
+        # PYTHONWARNINGS because else the warnings raised from within pypy are
+        # turned in errors.
+        monkeypatch.setenv('PYTHONWARNINGS_', "once,error")
+        data = self.run('-W ignore -W default '
+                        '-c "import sys; print sys.warnoptions"')
+        assert "['ignore', 'default', 'once', 'error']" in data
 
     def test_option_m(self):
         if not hasattr(runpy, '_run_module_as_main'):


More information about the pypy-commit mailing list