]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
fix isuse #13248: remove previously deprecated asyncore.dispatcher __getattr__ cheap...
authorGiampaolo Rodola' <g.rodola@gmail.com>
Tue, 29 Apr 2014 00:03:40 +0000 (02:03 +0200)
committerGiampaolo Rodola' <g.rodola@gmail.com>
Tue, 29 Apr 2014 00:03:40 +0000 (02:03 +0200)
Lib/asyncore.py
Lib/test/test_asyncore.py
Misc/NEWS

index 75481ddde0593c48c93dd3e3aeedc18913993003..37efa9bac4f1166f8baa969959dc7665fc21f4e6 100644 (file)
@@ -404,20 +404,6 @@ class dispatcher:
                 if why.args[0] not in (ENOTCONN, EBADF):
                     raise
 
-    # cheap inheritance, used to pass all other attribute
-    # references to the underlying socket object.
-    def __getattr__(self, attr):
-        try:
-            retattr = getattr(self.socket, attr)
-        except AttributeError:
-            raise AttributeError("%s instance has no attribute '%s'"
-                                 %(self.__class__.__name__, attr))
-        else:
-            msg = "%(me)s.%(attr)s is deprecated; use %(me)s.socket.%(attr)s " \
-                  "instead" % {'me' : self.__class__.__name__, 'attr' : attr}
-            warnings.warn(msg, DeprecationWarning, stacklevel=2)
-            return retattr
-
     # log and log_info may be overridden to provide more sophisticated
     # logging and warning methods. In general, log is for 'hit' logging
     # and 'log_info' is for informational, warning and error logging.
index 5aaedf358ed4906b97e5ea71f6f032ce29ec9edb..b04aa1d8be440106c56948bdcaacab0e7b9db48d 100644 (file)
@@ -316,23 +316,6 @@ class DispatcherTests(unittest.TestCase):
                     'warning: unhandled connect event']
         self.assertEqual(lines, expected)
 
-    def test_issue_8594(self):
-        # XXX - this test is supposed to be removed in next major Python
-        # version
-        d = asyncore.dispatcher(socket.socket())
-        # make sure the error message no longer refers to the socket
-        # object but the dispatcher instance instead
-        self.assertRaisesRegex(AttributeError, 'dispatcher instance',
-                               getattr, d, 'foo')
-        # cheap inheritance with the underlying socket is supposed
-        # to still work but a DeprecationWarning is expected
-        with warnings.catch_warnings(record=True) as w:
-            warnings.simplefilter("always")
-            family = d.family
-            self.assertEqual(family, socket.AF_INET)
-            self.assertEqual(len(w), 1)
-            self.assertTrue(issubclass(w[0].category, DeprecationWarning))
-
     def test_strerror(self):
         # refers to bug #8573
         err = asyncore._strerror(errno.EPERM)
index c7115719fccb8ddbcaadf165f8fd3847aa02bcbf..cd51f2e031109a6cfe5b0955efca98bda6199a77 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -60,6 +60,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #13248: removed previously deprecated asyncore.dispatcher __getattr__
+  cheap inheritance hack.
+
 - Issue #9815: assertRaises now tries to clear references to local variables
   in the exception's traceback.