]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
websocket: deprecate callback argument to websocket_connect 3486/head
authorBen Darnell <ben@bendarnell.com>
Fri, 25 Apr 2025 15:53:44 +0000 (11:53 -0400)
committerBen Darnell <ben@bendarnell.com>
Fri, 25 Apr 2025 15:55:40 +0000 (11:55 -0400)
This was missed in the 6.0-era deprecation of callback arguments.
The on_message_callback remains because even in coroutine-oriented
code it is often more convenient to use a callback than to
loop on read_message.

tornado/test/websocket_test.py
tornado/websocket.py

index 097dca85a14c60fdcf863b2592e33aecc664a706..1f317fb0d5ac6dfaaafbce447cab4fd10af0ec3b 100644 (file)
@@ -14,7 +14,7 @@ from tornado.log import gen_log, app_log
 from tornado.netutil import Resolver
 from tornado.simple_httpclient import SimpleAsyncHTTPClient
 from tornado.template import DictLoader
-from tornado.test.util import abstract_base_test
+from tornado.test.util import abstract_base_test, ignore_deprecation
 from tornado.testing import AsyncHTTPTestCase, gen_test, bind_unused_port, ExpectLog
 from tornado.web import Application, RequestHandler
 
@@ -333,9 +333,10 @@ class WebSocketTest(WebSocketBaseTestCase):
         self.assertEqual(response, "hello")
 
     def test_websocket_callbacks(self):
-        websocket_connect(
-            "ws://127.0.0.1:%d/echo" % self.get_http_port(), callback=self.stop
-        )
+        with ignore_deprecation():
+            websocket_connect(
+                "ws://127.0.0.1:%d/echo" % self.get_http_port(), callback=self.stop
+            )
         ws = self.wait().result()
         ws.write_message("hello")
         ws.read_message(self.stop)
index a7089c815a129927d35743aa09849c6ab37475ff..b719547bdf94e9623a9050a2eea3c911f655f6bc 100644 (file)
@@ -1675,6 +1675,11 @@ def websocket_connect(
 
     .. versionchanged:: 6.3
        Added the ``resolver`` argument.
+
+    .. deprecated:: 6.5
+       The ``callback`` argument is deprecated and will be removed in Tornado 7.0.
+       Use the returned Future instead. Note that ``on_message_callback`` is not
+       deprecated and may still be used.
     """
     if isinstance(url, httpclient.HTTPRequest):
         assert connect_timeout is None
@@ -1699,5 +1704,11 @@ def websocket_connect(
         resolver=resolver,
     )
     if callback is not None:
+        warnings.warn(
+            "The callback argument to websocket_connect is deprecated. "
+            "Use the returned Future instead.",
+            DeprecationWarning,
+            stacklevel=2,
+        )
         IOLoop.current().add_future(conn.connect_future, callback)
     return conn.connect_future