cpython: 0d9d8fdd9736 (original) (raw)
Mercurial > cpython
changeset 100310:0d9d8fdd9736 3.5
Issue #5824: Fix DatagramRequestHandler tests by binding the client socket [#5824]
Martin Panter vadmium+py@gmail.com | |
---|---|
date | Wed, 24 Feb 2016 05:12:59 +0000 |
parents | c8933fbc9171 |
children | 113e9c6fd64d ce5bf3290621 |
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 @@ -120,11 +120,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"
@@ -750,9 +745,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 @@ -160,6 +160,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 b'\n' not in buf:[](#l2.11)
@@ -222,27 +224,24 @@ class SocketServerTest(unittest.TestCase socketserver.DatagramRequestHandler, self.dgram_examine)
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)