Issue #5824: Fix DatagramRequestHandler tests by binding the client socket
This commit is contained in:
parent
ee3074e1f4
commit
1827eff030
|
@ -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(BaseRequestHandler):
|
|||
|
||||
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):
|
||||
|
|
|
@ -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:
|
||||
s.bind(self.pickaddr(proto))
|
||||
s.sendto(TEST_STR, addr)
|
||||
buf = data = receive(s, 100)
|
||||
while data and b'\n' not in buf:
|
||||
|
@ -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,
|
||||
socketserver.DatagramRequestHandler,
|
||||
self.dgram_examine)
|
||||
|
||||
# @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,
|
||||
socketserver.DatagramRequestHandler,
|
||||
self.dgram_examine)
|
||||
|
||||
@requires_unix_sockets
|
||||
@requires_forking
|
||||
def test_ForkingUnixDatagramServer(self):
|
||||
self.run_server(ForkingUnixDatagramServer,
|
||||
socketserver.DatagramRequestHandler,
|
||||
self.dgram_examine)
|
||||
|
||||
@reap_threads
|
||||
def test_shutdown(self):
|
||||
|
|
Loading…
Reference in New Issue