Issue #5824: Merge socketserver tests from 3.5

This commit is contained in:
Martin Panter 2016-02-24 06:14:15 +00:00
commit 510addf63f
2 changed files with 19 additions and 28 deletions

View file

@ -120,11 +120,6 @@ BaseServer:
# Author of the BaseServer patch: Luke Kenneth Casson Leighton # 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" __version__ = "0.4"
@ -755,9 +750,6 @@ class StreamRequestHandler(BaseRequestHandler):
class DatagramRequestHandler(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.""" """Define self.rfile and self.wfile for datagram sockets."""
def setup(self): def setup(self):

View file

@ -161,6 +161,8 @@ class SocketServerTest(unittest.TestCase):
def dgram_examine(self, proto, addr): def dgram_examine(self, proto, addr):
s = socket.socket(proto, socket.SOCK_DGRAM) 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) s.sendto(TEST_STR, addr)
buf = data = receive(s, 100) buf = data = receive(s, 100)
while data and b'\n' not in buf: while data and b'\n' not in buf:
@ -223,27 +225,24 @@ class SocketServerTest(unittest.TestCase):
socketserver.DatagramRequestHandler, socketserver.DatagramRequestHandler,
self.dgram_examine) self.dgram_examine)
# Alas, on Linux (at least) recvfrom() doesn't return a meaningful @requires_unix_sockets
# client address so this cannot work: def test_UnixDatagramServer(self):
self.run_server(socketserver.UnixDatagramServer,
socketserver.DatagramRequestHandler,
self.dgram_examine)
# @requires_unix_sockets @requires_unix_sockets
# def test_UnixDatagramServer(self): def test_ThreadingUnixDatagramServer(self):
# self.run_server(socketserver.UnixDatagramServer, self.run_server(socketserver.ThreadingUnixDatagramServer,
# socketserver.DatagramRequestHandler, socketserver.DatagramRequestHandler,
# self.dgram_examine) self.dgram_examine)
#
# @requires_unix_sockets @requires_unix_sockets
# def test_ThreadingUnixDatagramServer(self): @requires_forking
# self.run_server(socketserver.ThreadingUnixDatagramServer, def test_ForkingUnixDatagramServer(self):
# socketserver.DatagramRequestHandler, self.run_server(ForkingUnixDatagramServer,
# self.dgram_examine) socketserver.DatagramRequestHandler,
# self.dgram_examine)
# @requires_unix_sockets
# @requires_forking
# def test_ForkingUnixDatagramServer(self):
# self.run_server(socketserver.ForkingUnixDatagramServer,
# socketserver.DatagramRequestHandler,
# self.dgram_examine)
@reap_threads @reap_threads
def test_shutdown(self): def test_shutdown(self):