]> granicus.if.org Git - python/commitdiff
Issue #12151: Test now ignores datagram socket errors after server is closed.
authorVinay Sajip <vinay_sajip@yahoo.co.uk>
Mon, 23 May 2011 22:00:42 +0000 (23:00 +0100)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>
Mon, 23 May 2011 22:00:42 +0000 (23:00 +0100)
Lib/test/test_logging.py

index 8166b3366d5562e25af01d0e642323741232021a..e4fc26644261c2b2d4760548f9903e743ae92331 100644 (file)
@@ -888,7 +888,8 @@ if threading:
                             before calling :meth:`start`, so that the server will
                             set up the socket and listen on it.
         """
-        def __init__(self, addr, handler, poll_interval=0.5, bind_and_activate=True):
+        def __init__(self, addr, handler, poll_interval=0.5,
+                     bind_and_activate=True):
             class DelegatingUDPRequestHandler(DatagramRequestHandler):
 
                 def handle(self):
@@ -896,15 +897,15 @@ if threading:
 
                 def finish(self):
                     data = self.wfile.getvalue()
-                    try:
-                        super(DelegatingUDPRequestHandler, self).finish()
-                    except socket.error:
-                        msg = ('Error during finish, while sending %r, '
-                               'closed = %s')
-                        print(msg % (data, self.server._closed), file=sys.stderr)
-                        raise
-
-            ThreadingUDPServer.__init__(self, addr, DelegatingUDPRequestHandler,
+                    if data:
+                        try:
+                            super(DelegatingUDPRequestHandler, self).finish()
+                        except socket.error:
+                            if not self.server._closed:
+                                raise
+
+            ThreadingUDPServer.__init__(self, addr,
+                                        DelegatingUDPRequestHandler,
                                         bind_and_activate)
             ControlMixin.__init__(self, handler, poll_interval)
             self._closed = False