summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiampaolo Rodola' <g.rodola@gmail.com>2014-04-29 00:03:40 (GMT)
committerGiampaolo Rodola' <g.rodola@gmail.com>2014-04-29 00:03:40 (GMT)
commit8af740c46a89f46d6a2f59869847724a5eaf3625 (patch)
tree4fbe7809cbdc62ab301047009c6bf224223c2631
parent63aeb71909f3058ee69f6e39478f541a045c2fbd (diff)
downloadcpython-8af740c46a89f46d6a2f59869847724a5eaf3625.zip
cpython-8af740c46a89f46d6a2f59869847724a5eaf3625.tar.gz
cpython-8af740c46a89f46d6a2f59869847724a5eaf3625.tar.bz2
fix isuse #13248: remove previously deprecated asyncore.dispatcher __getattr__ cheap inheritance hack.
-rw-r--r--Lib/asyncore.py14
-rw-r--r--Lib/test/test_asyncore.py17
-rw-r--r--Misc/NEWS3
3 files changed, 3 insertions, 31 deletions
diff --git a/Lib/asyncore.py b/Lib/asyncore.py
index 75481dd..37efa9b 100644
--- a/Lib/asyncore.py
+++ b/Lib/asyncore.py
@@ -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.
diff --git a/Lib/test/test_asyncore.py b/Lib/test/test_asyncore.py
index 5aaedf3..b04aa1d 100644
--- a/Lib/test/test_asyncore.py
+++ b/Lib/test/test_asyncore.py
@@ -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)
diff --git a/Misc/NEWS b/Misc/NEWS
index c711571..cd51f2e 100644
--- 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.