async def setUp(self) -> None: super().setUp() with override_settings(DEBUG=False): self.http_server = HTTPServer(create_tornado_application()) sock = netutil.bind_sockets(0, "127.0.0.1", family=socket.AF_INET)[0] self.port = sock.getsockname()[1] self.http_server.add_sockets([sock]) self.http_client = AsyncHTTPClient() signals.request_started.disconnect(close_old_connections) signals.request_finished.disconnect(close_old_connections) self.session_cookie: Optional[Dict[str, str]] = None
def inner_run() -> None: from django.conf import settings from django.utils import translation translation.activate(settings.LANGUAGE_CODE) # We pass display_num_errors=False, since Django will # likely display similar output anyway. self.check(display_num_errors=False) print(f"Tornado server (re)started on port {port}") if settings.USING_RABBITMQ: queue_client = get_queue_client() assert isinstance(queue_client, TornadoQueueClient) # Process notifications received via RabbitMQ queue_name = notify_tornado_queue_name(port) queue_client.start_json_consumer( queue_name, get_wrapped_process_notification(queue_name) ) try: # Application is an instance of Django's standard wsgi handler. application = create_tornado_application() if settings.AUTORELOAD: zulip_autoreload_start() # start tornado web server in single-threaded mode http_server = httpserver.HTTPServer( application, xheaders=xheaders, no_keep_alive=no_keep_alive ) http_server.listen(port, address=addr) from zerver.tornado.ioloop_logging import logging_data logging_data["port"] = str(port) setup_event_queue(port) add_client_gc_hook(missedmessage_hook) setup_tornado_rabbitmq() instance = ioloop.IOLoop.instance() if django.conf.settings.DEBUG: instance.set_blocking_log_threshold(5) instance.handle_callback_exception = handle_callback_exception instance.start() except KeyboardInterrupt: sys.exit(0)
def inner_run() -> None: from django.conf import settings from django.utils import translation translation.activate(settings.LANGUAGE_CODE) print("Validating Django models.py...") self.check(display_num_errors=True) print("\nDjango version %s" % (django.get_version(), )) print("Tornado server is running at http://%s:%s/" % (addr, port)) print("Quit the server with %s." % (quit_command, )) if settings.USING_RABBITMQ: queue_client = get_queue_client() # Process notifications received via RabbitMQ queue_client.register_json_consumer( notify_tornado_queue_name(int(port)), process_notification) queue_client.register_json_consumer( tornado_return_queue_name(int(port)), respond_send_message) try: # Application is an instance of Django's standard wsgi handler. application = create_tornado_application(int(port)) if settings.AUTORELOAD: zulip_autoreload_start() # start tornado web server in single-threaded mode http_server = httpserver.HTTPServer( application, xheaders=xheaders, no_keep_alive=no_keep_alive) http_server.listen(int(port), address=addr) setup_event_queue(int(port)) add_client_gc_hook(missedmessage_hook) setup_tornado_rabbitmq() from zerver.tornado.ioloop_logging import logging_data logging_data['port'] = port instance = ioloop.IOLoop.instance() if django.conf.settings.DEBUG: instance.set_blocking_log_threshold(5) instance.handle_callback_exception = handle_callback_exception instance.start() except KeyboardInterrupt: sys.exit(0)
def inner_run() -> None: from django.conf import settings from django.utils import translation translation.activate(settings.LANGUAGE_CODE) print("Validating Django models.py...") self.check(display_num_errors=True) print("\nDjango version %s" % (django.get_version())) print("Tornado server is running at http://%s:%s/" % (addr, port)) print("Quit the server with %s." % (quit_command,)) if settings.USING_RABBITMQ: queue_client = get_queue_client() # Process notifications received via RabbitMQ queue_client.register_json_consumer(notify_tornado_queue_name(int(port)), process_notification) queue_client.register_json_consumer(tornado_return_queue_name(int(port)), respond_send_message) try: # Application is an instance of Django's standard wsgi handler. application = create_tornado_application(int(port)) if settings.AUTORELOAD: zulip_autoreload_start() # start tornado web server in single-threaded mode http_server = httpserver.HTTPServer(application, xheaders=xheaders, no_keep_alive=no_keep_alive) http_server.listen(int(port), address=addr) setup_event_queue(int(port)) add_client_gc_hook(missedmessage_hook) setup_tornado_rabbitmq() from zerver.tornado.ioloop_logging import logging_data logging_data['port'] = port instance = ioloop.IOLoop.instance() if django.conf.settings.DEBUG: instance.set_blocking_log_threshold(5) instance.handle_callback_exception = handle_callback_exception instance.start() except KeyboardInterrupt: sys.exit(0)
def get_app(self) -> Application: return create_tornado_application(9993)
def get_app(self): # type: () -> Application return create_tornado_application()
def get_app(self): # type: () -> Application """ Return tornado app to launch for test cases """ return create_tornado_application()
def get_app(self) -> Application: """ Return tornado app to launch for test cases """ return create_tornado_application(9993)
async def inner_run() -> None: from django.utils import translation AsyncIOMainLoop().install() loop = asyncio.get_running_loop() stop_fut = loop.create_future() def stop() -> None: if not stop_fut.done(): stop_fut.set_result(None) def add_signal_handlers() -> None: loop.add_signal_handler(signal.SIGINT, stop), loop.add_signal_handler(signal.SIGTERM, stop), def remove_signal_handlers() -> None: loop.remove_signal_handler(signal.SIGINT), loop.remove_signal_handler(signal.SIGTERM), async with AsyncExitStack() as stack: stack.push_async_callback( sync_to_async(remove_signal_handlers, thread_sensitive=True)) await sync_to_async(add_signal_handlers, thread_sensitive=True)() translation.activate(settings.LANGUAGE_CODE) # We pass display_num_errors=False, since Django will # likely display similar output anyway. self.check(display_num_errors=False) print(f"Tornado server (re)started on port {port}") if settings.USING_RABBITMQ: queue_client = TornadoQueueClient() set_queue_client(queue_client) # Process notifications received via RabbitMQ queue_name = notify_tornado_queue_name(port) stack.callback(queue_client.close) queue_client.start_json_consumer( queue_name, get_wrapped_process_notification(queue_name)) # Application is an instance of Django's standard wsgi handler. application = create_tornado_application() # start tornado web server in single-threaded mode http_server = httpserver.HTTPServer(application, xheaders=True) stack.push_async_callback(http_server.close_all_connections) stack.callback(http_server.stop) http_server.listen(port, address=addr) from zerver.tornado.ioloop_logging import logging_data logging_data["port"] = str(port) await setup_event_queue(http_server, port) stack.callback(dump_event_queues, port) add_client_gc_hook(missedmessage_hook) if settings.USING_RABBITMQ: setup_tornado_rabbitmq(queue_client) if hasattr(__main__, "add_reload_hook"): autoreload.start() await stop_fut # Monkey patch tornado.autoreload to prevent it from continuing # to watch for changes after catching our SystemExit. Otherwise # the user needs to press Ctrl+C twice. __main__.wait = lambda: None