cpython: 92ae4a305858 (original) (raw)
Mercurial > cpython
changeset 100309:92ae4a305858 2.7
Issue #5824: Fix DatagramRequestHandler tests by binding the client socket [#5824]
Martin Panter vadmium+py@gmail.com | |
---|---|
date | Wed, 24 Feb 2016 04:45:33 +0000 |
parents | c62526580ff0 |
children | 59d797915dca |
files | Lib/SocketServer.py Lib/test/test_socketserver.py |
diffstat | 2 files changed, 19 insertions(+), 28 deletions(-)[+] [-] Lib/SocketServer.py 8 Lib/test/test_socketserver.py 39 |
line wrap: on
line diff
--- a/Lib/SocketServer.py +++ b/Lib/SocketServer.py @@ -121,11 +121,6 @@ BaseServer:
Author of the BaseServer patch: Luke Kenneth Casson Leighton
-# XXX Warning
-# There is a test suite for this module, but it cannot be run by the
-# standard regression test.
-# To run it manually, run Lib/test/test_socketserver.py.
-
version = "0.4"
@@ -721,9 +716,6 @@ class StreamRequestHandler(BaseRequestHa
class DatagramRequestHandler(BaseRequestHandler):
XXX Regrettably, I cannot get this working on Linux;
s.recvfrom() doesn't return a meaningful client address.
- """Define self.rfile and self.wfile for datagram sockets.""" def setup(self):
--- a/Lib/test/test_socketserver.py +++ b/Lib/test/test_socketserver.py @@ -175,6 +175,8 @@ class SocketServerTest(unittest.TestCase def dgram_examine(self, proto, addr): s = socket.socket(proto, socket.SOCK_DGRAM)
if HAVE_UNIX_SOCKETS and proto == socket.AF_UNIX:[](#l2.7)
s.bind(self.pickaddr(proto))[](#l2.8) s.sendto(TEST_STR, addr)[](#l2.9) buf = data = receive(s, 100)[](#l2.10) while data and '\n' not in buf:[](#l2.11)
@@ -269,27 +271,24 @@ class SocketServerTest(unittest.TestCase # Make sure select was called again: self.assertGreater(mock_select.called, 1)
Alas, on Linux (at least) recvfrom() doesn't return a meaningful
client address so this cannot work:
- @requires_unix_sockets
- def test_UnixDatagramServer(self):
self.run_server(SocketServer.UnixDatagramServer,[](#l2.20)
SocketServer.DatagramRequestHandler,[](#l2.21)
self.dgram_examine)[](#l2.22)
@requires_unix_sockets
def test_UnixDatagramServer(self):
self.run_server(SocketServer.UnixDatagramServer,
SocketServer.DatagramRequestHandler,
self.dgram_examine)
- #
@requires_unix_sockets
def test_ThreadingUnixDatagramServer(self):
self.run_server(SocketServer.ThreadingUnixDatagramServer,
SocketServer.DatagramRequestHandler,
self.dgram_examine)
- #
@requires_unix_sockets
@requires_forking
def test_ForkingUnixDatagramServer(self):
self.run_server(SocketServer.ForkingUnixDatagramServer,
SocketServer.DatagramRequestHandler,
self.dgram_examine)
- @requires_unix_sockets
- def test_ThreadingUnixDatagramServer(self):
self.run_server(SocketServer.ThreadingUnixDatagramServer,[](#l2.44)
SocketServer.DatagramRequestHandler,[](#l2.45)
self.dgram_examine)[](#l2.46)