Isn't a try: ... finally: ... needed here?

Florent

Tres Seaver wrote:
Log message for revision 40329:
  Suppress expected DeprecationWarning output in test.

Changed:
  U   Zope/trunk/lib/python/Products/PythonScripts/tests/testPythonScript.py

-=-
Modified: Zope/trunk/lib/python/Products/PythonScripts/tests/testPythonScript.py
===================================================================
--- Zope/trunk/lib/python/Products/PythonScripts/tests/testPythonScript.py      
2005-11-22 18:18:17 UTC (rev 40328)
+++ Zope/trunk/lib/python/Products/PythonScripts/tests/testPythonScript.py      
2005-11-22 18:18:36 UTC (rev 40329)
@@ -25,6 +25,30 @@
     if not here:
         here = os.getcwd()
+class WarningInterceptor:
+
+    _old_stderr = None
+    _our_stderr_stream = None
+
+    def _trap_warning_output( self ):
+
+        if self._old_stderr is not None:
+            return
+
+        import sys
+        from StringIO import StringIO
+
+        self._old_stderr = sys.stderr
+        self._our_stderr_stream = sys.stderr = StringIO()
+
+    def _free_warning_output( self ):
+
+        if self._old_stderr is None:
+            return
+
+        import sys
+        sys.stderr = self._old_stderr
+
 # Test Classes
def readf(name):
@@ -219,7 +243,7 @@
                 f = self._newPS(defn + "\n" + asn % name)
                 self.assertRaises(TypeError, f)
-class TestPythonScriptGlobals(PythonScriptTestBase):
+class TestPythonScriptGlobals(PythonScriptTestBase, WarningInterceptor):
     def _exec(self, script, bound_names=None, args=None, kws=None):
         if args is None:
             args = ()
@@ -241,8 +265,10 @@
     def test_filepath(self):
         # This test is meant to raise a deprecation warning.
         # It used to fail mysteriously instead.
+        self._trap_warning_output()
         f = self._filePS('filepath')
         self.assertEqual(f(), [0])
+        self._free_warning_output()
def test_suite():
     suite = unittest.TestSuite()

_______________________________________________
Zope-Checkins maillist  -  Zope-Checkins@zope.org
http://mail.zope.org/mailman/listinfo/zope-checkins



--
Florent Guillaume, Nuxeo (Paris, France)   Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   [EMAIL PROTECTED]
_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
http://mail.zope.org/mailman/listinfo/zope )

Reply via email to