]> granicus.if.org Git - python/commitdiff
Issue #21155: asyncio.EventLoop.create_unix_server() now raises a ValueError if
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 7 Apr 2014 09:18:54 +0000 (11:18 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 7 Apr 2014 09:18:54 +0000 (11:18 +0200)
path and sock are specified at the same time.

Lib/asyncio/unix_events.py
Lib/test/test_asyncio/test_events.py
Misc/NEWS

index 212554801db1078ec9807321fe7a2ef0ba450bbb..1fbdd313a8fba6283186f599c51c520801478a63 100644 (file)
@@ -206,6 +206,10 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
             raise TypeError('ssl argument must be an SSLContext or None')
 
         if path is not None:
+            if sock is not None:
+                raise ValueError(
+                    'path and sock can not be specified at the same time')
+
             sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
 
             try:
index bafa8756cfc4485275642d9daf14a682106822f0..1e64dd07d604807cc8a345507c51aef332e6d4a5 100644 (file)
@@ -703,6 +703,17 @@ class EventLoopTestsMixin:
         # close server
         server.close()
 
+    @unittest.skipUnless(hasattr(socket, 'AF_UNIX'), 'No UNIX Sockets')
+    def test_create_unix_server_path_socket_error(self):
+        proto = MyProto(loop=self.loop)
+        sock = socket.socket()
+        with sock:
+            f = self.loop.create_unix_server(lambda: proto, '/test', sock=sock)
+            with self.assertRaisesRegex(ValueError,
+                                        'path and sock can not be specified '
+                                        'at the same time'):
+                server = self.loop.run_until_complete(f)
+
     def _create_ssl_context(self, certfile, keyfile=None):
         sslcontext = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
         sslcontext.options |= ssl.OP_NO_SSLv2
index fd5e71b7d7a36ba89906e961c1b6a1ef7c574cdf..ec4ea5cd4ec6432393d22c64c8dc1641ddde6d0e 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #21155: asyncio.EventLoop.create_unix_server() now raises a ValueError
+  if path and sock are specified at the same time.
+
 - Issue #21149: Improved thread-safety in logging cleanup during interpreter
   shutdown. Thanks to Devin Jeanpierre for the patch.