[Python-checkins] r61651 - in python/trunk/Lib: bsddb/test/test_1413192.py test/test_hmac.py test/test_unicode_file.py

brett.cannon python-checkins at python.org
Thu Mar 20 00:01:17 CET 2008


Author: brett.cannon
Date: Thu Mar 20 00:01:17 2008
New Revision: 61651

Modified:
   python/trunk/Lib/bsddb/test/test_1413192.py
   python/trunk/Lib/test/test_hmac.py
   python/trunk/Lib/test/test_unicode_file.py
Log:
Make sure that the warnings filter is not reset or changed beyond the current
running test file.

Closes issue2407. Thanks Jerry Seutter.


Modified: python/trunk/Lib/bsddb/test/test_1413192.py
==============================================================================
--- python/trunk/Lib/bsddb/test/test_1413192.py	(original)
+++ python/trunk/Lib/bsddb/test/test_1413192.py	Thu Mar 20 00:01:17 2008
@@ -5,7 +5,9 @@
 
 import shutil
 import tempfile
+from test.test_support import catch_warning
 import warnings
+
 try:
     # For Pythons w/distutils and add-on pybsddb
     from bsddb3 import db
@@ -33,12 +35,11 @@
         del self.the_txn
 
 
-warnings.filterwarnings('ignore', 'DBTxn aborted in destructor')
-try:
+with catch_warning():
+    warnings.filterwarnings('ignore', 'DBTxn aborted in destructor')
     context = Context()
     del context
-finally:
-    warnings.resetwarnings()
+
 
 # try not to leave a turd
 try:

Modified: python/trunk/Lib/test/test_hmac.py
==============================================================================
--- python/trunk/Lib/test/test_hmac.py	(original)
+++ python/trunk/Lib/test/test_hmac.py	Thu Mar 20 00:01:17 2008
@@ -211,8 +211,8 @@
             def digest(self):
                 return self._x.digest()
 
-        warnings.simplefilter('error', RuntimeWarning)
-        try:
+        with test_support.catch_warning():
+            warnings.simplefilter('error', RuntimeWarning)
             try:
                 hmac.HMAC('a', 'b', digestmod=MockCrazyHash)
             except RuntimeWarning:
@@ -227,8 +227,6 @@
                 pass
             else:
                 self.fail('Expected warning about small block_size')
-        finally:
-            warnings.resetwarnings()
 
 
 

Modified: python/trunk/Lib/test/test_unicode_file.py
==============================================================================
--- python/trunk/Lib/test/test_unicode_file.py	(original)
+++ python/trunk/Lib/test/test_unicode_file.py	Thu Mar 20 00:01:17 2008
@@ -75,7 +75,7 @@
 
     # Do as many "equivalancy' tests as we can - ie, check that although we
     # have different types for the filename, they refer to the same file.
-    def _do_equivilent(self, filename1, filename2):
+    def _do_equivalent(self, filename1, filename2):
         # Note we only check "filename1 against filename2" - we don't bother
         # checking "filename2 against 1", as we assume we are called again with
         # the args reversed.
@@ -98,31 +98,20 @@
         os.rename(filename1 + ".new", filename2)
         self.failUnless(os.path.isfile(filename2))
 
-        # Try using shutil on the filenames.
-        try:
-            filename1==filename2
-        except UnicodeDecodeError:
-            # these filenames can't be compared - shutil.copy tries to do
-            # just that.  This is really a bug in 'shutil' - if one of shutil's
-            # 2 params are Unicode and the other isn't, it should coerce the
-            # string to Unicode with the filesystem encoding before comparison.
-            pass
-        else:
-            # filenames can be compared.
-            shutil.copy(filename1, filename2 + ".new")
-            os.unlink(filename1 + ".new") # remove using equiv name.
-            # And a couple of moves, one using each name.
-            shutil.move(filename1, filename2 + ".new")
-            self.failUnless(not os.path.exists(filename2))
-            shutil.move(filename1 + ".new", filename2)
-            self.failUnless(os.path.exists(filename1))
-            # Note - due to the implementation of shutil.move,
-            # it tries a rename first.  This only fails on Windows when on
-            # different file systems - and this test can't ensure that.
-            # So we test the shutil.copy2 function, which is the thing most
-            # likely to fail.
-            shutil.copy2(filename1, filename2 + ".new")
-            os.unlink(filename1 + ".new")
+        shutil.copy(filename1, filename2 + ".new")
+        os.unlink(filename1 + ".new") # remove using equiv name.
+        # And a couple of moves, one using each name.
+        shutil.move(filename1, filename2 + ".new")
+        self.failUnless(not os.path.exists(filename2))
+        shutil.move(filename1 + ".new", filename2)
+        self.failUnless(os.path.exists(filename1))
+        # Note - due to the implementation of shutil.move,
+        # it tries a rename first.  This only fails on Windows when on
+        # different file systems - and this test can't ensure that.
+        # So we test the shutil.copy2 function, which is the thing most
+        # likely to fail.
+        shutil.copy2(filename1, filename2 + ".new")
+        os.unlink(filename1 + ".new")
 
     def _do_directory(self, make_name, chdir_name, encoded):
         cwd = os.getcwd()
@@ -173,7 +162,7 @@
         f = file(filename1, "w")
         f.close()
         try:
-            self._do_equivilent(filename1, filename2)
+            self._do_equivalent(filename1, filename2)
         finally:
             os.unlink(filename1)
 
@@ -190,7 +179,7 @@
         self._test_equivalent(TESTFN_UNICODE, TESTFN_ENCODED)
 
     def test_directories(self):
-        # For all 'equivilent' combinations:
+        # For all 'equivalent' combinations:
         #  Make dir with encoded, chdir with unicode, checkdir with encoded
         #  (or unicode/encoded/unicode, etc
         ext = ".dir"


More information about the Python-checkins mailing list