]> granicus.if.org Git - python/commitdiff
Fix some py3k warnings in the standard library.
authorFlorent Xicluna <florent.xicluna@gmail.com>
Sun, 7 Mar 2010 12:14:25 +0000 (12:14 +0000)
committerFlorent Xicluna <florent.xicluna@gmail.com>
Sun, 7 Mar 2010 12:14:25 +0000 (12:14 +0000)
Lib/_pyio.py
Lib/calendar.py
Lib/ctypes/test/test_callbacks.py
Lib/distutils/util.py
Lib/shutil.py
Lib/test/test_calendar.py
Lib/test/test_memoryio.py
Lib/unittest/case.py
Lib/warnings.py

index a1c21d311cf3a3eebe224cb1b8ba822e0ac4475c..809868106769c470e8e082174b9e3cba2d5df6d6 100644 (file)
@@ -839,8 +839,8 @@ class BytesIO(BufferedIOBase):
         if self.closed:
             raise ValueError("seek on closed file")
         try:
-            pos = pos.__index__()
-        except AttributeError as err:
+            pos.__index__
+        except AttributeError:
             raise TypeError("an integer is required")
         if whence == 0:
             if pos < 0:
@@ -864,8 +864,13 @@ class BytesIO(BufferedIOBase):
             raise ValueError("truncate on closed file")
         if pos is None:
             pos = self._pos
-        elif pos < 0:
-            raise ValueError("negative truncate position %r" % (pos,))
+        else:
+            try:
+                pos.__index__
+            except AttributeError:
+                raise TypeError("an integer is required")
+            if pos < 0:
+                raise ValueError("negative truncate position %r" % (pos,))
         del self._buffer[pos:]
         return pos
 
@@ -1813,6 +1818,10 @@ class TextIOWrapper(TextIOBase):
         if n is None:
             n = -1
         decoder = self._decoder or self._get_decoder()
+        try:
+            n.__index__
+        except AttributeError:
+            raise TypeError("an integer is required")
         if n < 0:
             # Read everything.
             result = (self._get_decoded_chars() +
index ab14c7dbec279391e62897192efca31493c652f3..2e45e244beda97039780228cacb2164d0912fd4c 100644 (file)
@@ -564,6 +564,10 @@ c = TextCalendar()
 firstweekday = c.getfirstweekday
 
 def setfirstweekday(firstweekday):
+    try:
+        firstweekday.__index__
+    except AttributeError:
+        raise IllegalWeekdayError(firstweekday)
     if not MONDAY <= firstweekday <= SUNDAY:
         raise IllegalWeekdayError(firstweekday)
     c.firstweekday = firstweekday
index 6f517b1c113d3dcd38f4ca9abc756511aece9144..c758d5686aa2b7cab4eaf744f593dbaeeaa22773 100644 (file)
@@ -132,7 +132,7 @@ class Callbacks(unittest.TestCase):
         gc.collect()
         live = [x for x in gc.get_objects()
                 if isinstance(x, X)]
-        self.failUnlessEqual(len(live), 0)
+        self.assertEqual(len(live), 0)
 
 try:
     WINFUNCTYPE
@@ -164,7 +164,7 @@ class SampleCallbacksTestCase(unittest.TestCase):
         result = integrate(0.0, 1.0, CALLBACK(func), 10)
         diff = abs(result - 1./3.)
 
-        self.assertTrue(diff < 0.01, "%s not less than 0.01" % diff)
+        self.assertLess(diff, 0.01, "%s not less than 0.01" % diff)
 
 ################################################################
 
index 36ac72138658827fd6b31a8a1852ff9bd472fbb4..1a55f708948332909d9e2c5347a5543fc6c5dd23 100644 (file)
@@ -406,7 +406,7 @@ def execute (func, args, msg=None, verbose=0, dry_run=0):
 
     log.info(msg)
     if not dry_run:
-        apply(func, args)
+        func(*args)
 
 
 def strtobool (val):
index 0cc9262cd3eccad7696334e7577e00dda2f5092d..df571e71ad953377f0244b87cbbebc4a9cdee51a 100644 (file)
@@ -10,6 +10,7 @@ import stat
 from os.path import abspath
 import fnmatch
 from warnings import warn
+import collections
 
 try:
     from pwd import getpwnam
@@ -500,7 +501,7 @@ def register_archive_format(name, function, extra_args=None, description=''):
     """
     if extra_args is None:
         extra_args = []
-    if not callable(function):
+    if not isinstance(function, collections.Callable):
         raise TypeError('The %s object is not callable' % function)
     if not isinstance(extra_args, (tuple, list)):
         raise TypeError('extra_args needs to be a sequence')
index 39d4fe87258c33591752fe8d66c6e9bd3f6726f8..fad517c3f5efa6e92b3aee29c8d676b967dcdbb6 100644 (file)
@@ -212,11 +212,9 @@ class CalendarTestCase(unittest.TestCase):
         self.assertEqual(calendar.isleap(2003), 0)
 
     def test_setfirstweekday(self):
-        # Silence a py3k warning claiming to affect Lib/calendar.py
-        with test_support.check_warnings():
-            self.assertRaises(ValueError, calendar.setfirstweekday, 'flabber')
-            self.assertRaises(ValueError, calendar.setfirstweekday, -1)
-            self.assertRaises(ValueError, calendar.setfirstweekday, 200)
+        self.assertRaises(ValueError, calendar.setfirstweekday, 'flabber')
+        self.assertRaises(ValueError, calendar.setfirstweekday, -1)
+        self.assertRaises(ValueError, calendar.setfirstweekday, 200)
         orig = calendar.firstweekday()
         calendar.setfirstweekday(calendar.SUNDAY)
         self.assertEqual(calendar.firstweekday(), calendar.SUNDAY)
index 13fa826ad8b5bff68482b8f938d1bc041178a348..2b4c76e8f9aafb168d57e7c7b214e4244fdd3c9d 100644 (file)
@@ -133,9 +133,7 @@ class MemoryTestMixin:
         pos = memio.tell()
         self.assertEqual(memio.truncate(None), pos)
         self.assertEqual(memio.tell(), pos)
-        # Silence a py3k warning
-        with support.check_warnings():
-            self.assertRaises(TypeError, memio.truncate, '0')
+        self.assertRaises(TypeError, memio.truncate, '0')
         memio.close()
         self.assertRaises(ValueError, memio.truncate, 0)
 
@@ -172,9 +170,7 @@ class MemoryTestMixin:
         self.assertEqual(type(memio.read()), type(buf))
         memio.seek(0)
         self.assertEqual(memio.read(None), buf)
-        # Silence a py3k warning
-        with support.check_warnings():
-            self.assertRaises(TypeError, memio.read, '')
+        self.assertRaises(TypeError, memio.read, '')
         memio.close()
         self.assertRaises(ValueError, memio.read)
 
index 88d1bec889d24b8b7e7d0adf23f0a234e93e9567..aacd67ca087a8548c2cf8ee6758948854d540bb3 100644 (file)
@@ -774,26 +774,23 @@ class TestCase(object):
         set(actual))`` but it works with sequences of unhashable objects as
         well.
         """
-        try:
-            expected = set(expected_seq)
-            actual = set(actual_seq)
-            missing = list(expected.difference(actual))
-            unexpected = list(actual.difference(expected))
-            missing.sort()
-            unexpected.sort()
-        except TypeError:
-            # Fall back to slower list-compare if any of the objects are
-            # not hashable.
-            expected = list(expected_seq)
-            actual = list(actual_seq)
-            with warnings.catch_warnings():
-                if sys.py3kwarning:
-                    # Silence Py3k warning
-                    warnings.filterwarnings("ignore",
-                                            "dict inequality comparisons "
-                                            "not supported", DeprecationWarning)
-                expected.sort()
-                actual.sort()
+        with warnings.catch_warnings():
+            if sys.py3kwarning:
+                # Silence Py3k warning raised during the sorting
+                for msg in ["dict inequality comparisons",
+                            "builtin_function_or_method order comparisons",
+                            "comparing unequal types"]:
+                    warnings.filterwarnings("ignore", msg, DeprecationWarning)
+            try:
+                expected = set(expected_seq)
+                actual = set(actual_seq)
+                missing = sorted(expected.difference(actual))
+                unexpected = sorted(actual.difference(expected))
+            except TypeError:
+                # Fall back to slower list-compare if any of the objects are
+                # not hashable.
+                expected = sorted(expected_seq)
+                actual = sorted(actual_seq)
                 missing, unexpected = sorted_list_difference(expected, actual)
         errors = []
         if missing:
index 70b3d4361959309cfb3145e60a857281f7d2cf6d..134ba13cc131ef91c182f8bc01dac8fc69b6f5cc 100644 (file)
@@ -29,7 +29,7 @@ def _show_warning(message, category, filename, lineno, file=None, line=None):
         file.write(formatwarning(message, category, filename, lineno, line))
     except IOError:
         pass # the file (probably stderr) is invalid - this warning gets lost.
-# Keep a worrking version around in case the deprecation of the old API is
+# Keep a working version around in case the deprecation of the old API is
 # triggered.
 showwarning = _show_warning