mirror of
https://github.com/python/cpython.git
synced 2024-12-01 13:55:45 +08:00
fix isuse #13248: remove previously deprecated asyncore.dispatcher __getattr__ cheap inheritance hack.
This commit is contained in:
parent
63aeb71909
commit
8af740c46a
@ -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.
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user