tornado: Store port on SockJS connection object.

This will make it available for use inside our websockets code.
This commit is contained in:
Tim Abbott
2018-11-02 16:09:16 -07:00
parent 5e7aa27c29
commit ec065e92ee
4 changed files with 7 additions and 6 deletions

View File

@@ -95,7 +95,7 @@ class Command(BaseCommand):
try:
# Application is an instance of Django's standard wsgi handler.
application = create_tornado_application()
application = create_tornado_application(int(port))
if settings.AUTORELOAD:
zulip_autoreload_start()

View File

@@ -53,7 +53,7 @@ class TornadoWebTestCase(AsyncHTTPTestCase, ZulipTestCase):
@override_settings(DEBUG=False)
def get_app(self) -> Application:
return create_tornado_application()
return create_tornado_application(9993)
def client_get(self, path: str, **kwargs: Any) -> HTTPResponse:
self.add_session_cookie(kwargs)
@@ -171,7 +171,7 @@ class TornadoTestCase(WebSocketBaseTestCase):
def get_app(self) -> Application:
""" Return tornado app to launch for test cases
"""
return create_tornado_application()
return create_tornado_application(9993)
@staticmethod
def tornado_call(view_func: Callable[[HttpRequest, UserProfile], HttpResponse],

View File

@@ -17,7 +17,7 @@ def setup_tornado_rabbitmq() -> None: # nocoverage
atexit.register(lambda: queue_client.close())
autoreload.add_reload_hook(lambda: queue_client.close())
def create_tornado_application() -> tornado.web.Application:
def create_tornado_application(port: int) -> tornado.web.Application:
urls = (
r"/notify_tornado",
r"/json/events",
@@ -27,7 +27,7 @@ def create_tornado_application() -> tornado.web.Application:
# Application is an instance of Django's standard wsgi handler.
return tornado.web.Application(([(url, AsyncDjangoHandler) for url in urls] +
get_sockjs_router().urls),
get_sockjs_router(port).urls),
debug=settings.DEBUG,
autoreload=False,
# Disable Tornado's own request logging, since we have our own

View File

@@ -275,5 +275,6 @@ sockjs_url = '%s/static/third/sockjs/sockjs-0.3.4.js' % (settings.ROOT_DOMAIN_UR
sockjs_router = sockjs.tornado.SockJSRouter(SocketConnection, "/sockjs",
{'sockjs_url': sockjs_url,
'disabled_transports': ['eventsource', 'htmlfile']})
def get_sockjs_router() -> sockjs.tornado.SockJSRouter:
def get_sockjs_router(port: int) -> sockjs.tornado.SockJSRouter:
sockjs_router._connection.port = port
return sockjs_router