[Python-checkins] r83461 - in python/branches/release27-maint: Lib/asyncore.py Lib/test/test_asyncore.py Misc/ACKS Misc/NEWS
georg.brandl
python-checkins at python.org
Sun Aug 1 23:18:52 CEST 2010
Author: georg.brandl
Date: Sun Aug 1 23:18:52 2010
New Revision: 83461
Log:
Merged revisions 83201 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
........
r83201 | georg.brandl | 2010-07-28 10:19:35 +0200 (Mi, 28 Jul 2010) | 1 line
#9354: Provide getsockopt() in asyncore file_wrapper(). Patch by Lukas Langa.
........
Modified:
python/branches/release27-maint/ (props changed)
python/branches/release27-maint/Lib/asyncore.py
python/branches/release27-maint/Lib/test/test_asyncore.py
python/branches/release27-maint/Misc/ACKS
python/branches/release27-maint/Misc/NEWS
Modified: python/branches/release27-maint/Lib/asyncore.py
==============================================================================
--- python/branches/release27-maint/Lib/asyncore.py (original)
+++ python/branches/release27-maint/Lib/asyncore.py Sun Aug 1 23:18:52 2010
@@ -607,6 +607,14 @@
def send(self, *args):
return os.write(self.fd, *args)
+ def getsockopt(self, level, optname, buflen=None):
+ if (level == socket.SOL_SOCKET and
+ optname == socket.SO_ERROR and
+ not buflen):
+ return 0
+ raise NotImplementedError("Only asyncore specific behaviour "
+ "implemented.")
+
read = recv
write = send
Modified: python/branches/release27-maint/Lib/test/test_asyncore.py
==============================================================================
--- python/branches/release27-maint/Lib/test/test_asyncore.py (original)
+++ python/branches/release27-maint/Lib/test/test_asyncore.py Sun Aug 1 23:18:52 2010
@@ -428,6 +428,19 @@
w.close()
self.assertEqual(file(TESTFN).read(), self.d + d1 + d2)
+ @unittest.skipUnless(hasattr(asyncore, 'file_dispatcher'),
+ 'asyncore.file_dispatcher required')
+ def test_dispatcher(self):
+ fd = os.open(TESTFN, os.O_RDONLY)
+ data = []
+ class FileDispatcher(asyncore.file_dispatcher):
+ def handle_read(self):
+ data.append(self.recv(29))
+ s = FileDispatcher(fd)
+ os.close(fd)
+ asyncore.loop(timeout=0.01, use_poll=True, count=2)
+ self.assertEqual(b"".join(data), self.d)
+
class BaseTestHandler(asyncore.dispatcher):
Modified: python/branches/release27-maint/Misc/ACKS
==============================================================================
--- python/branches/release27-maint/Misc/ACKS (original)
+++ python/branches/release27-maint/Misc/ACKS Sun Aug 1 23:18:52 2010
@@ -438,8 +438,8 @@
Andrew Kuchling
Vladimir Kushnir
Cameron Laird
-Tino Lange
Łukasz Langa
+Tino Lange
Andrew Langmead
Detlef Lannert
Soren Larsen
Modified: python/branches/release27-maint/Misc/NEWS
==============================================================================
--- python/branches/release27-maint/Misc/NEWS (original)
+++ python/branches/release27-maint/Misc/NEWS Sun Aug 1 23:18:52 2010
@@ -24,6 +24,8 @@
Library
-------
+- Issue #9354: Provide getsockopt() in asyncore's file_wrapper.
+
- Issue #4108: In urllib.robotparser, if there are multiple 'User-agent: *'
entries, consider the first one.
@@ -951,6 +953,7 @@
Library
-------
+
- Issue #1555570: email no longer inserts extra blank lines when a \r\n
combo crosses an 8192 byte boundary.
More information about the Python-checkins
mailing list