Merged revisions 83461 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/release27-maint

................
  r83461 | georg.brandl | 2010-08-01 23:18:52 +0200 (So, 01 Aug 2010) | 9 lines

  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.
  ........
................
This commit is contained in:
Georg Brandl 2010-08-01 21:58:18 +00:00
parent 6290bcfc25
commit 86edb14057
4 changed files with 22 additions and 0 deletions

View File

@ -594,6 +594,14 @@ if os.name == 'posix':
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

View File

@ -412,6 +412,17 @@ if hasattr(asyncore, 'file_wrapper'):
w.close()
self.assertEqual(file(TESTFN).read(), self.d + d1 + d2)
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("".join(data), self.d)
def test_main():
tests = [HelperFunctionTests, DispatcherTests, DispatcherWithSendTests,

View File

@ -407,6 +407,7 @@ Ivan Krstić
Andrew Kuchling
Vladimir Kushnir
Cameron Laird
Łukasz Langa
Tino Lange
Andrew Langmead
Detlef Lannert

View File

@ -35,6 +35,8 @@ Core and Builtins
when turned into an exception: in this case the exception simply
gets ignored.
- Issue #9354: Provide getsockopt() in asyncore's file_wrapper.
- In the unicode/str.format(), raise a ValueError when indexes to arguments are
too large.