From f184fdf7fcb460bd86e2d89a81884f34162e5be9 Mon Sep 17 00:00:00 2001 From: Flavio Garcia Date: Fri, 30 Nov 2018 23:26:13 -0500 Subject: [PATCH] Implemented load to the firenado launcher. Added the load to the launch app run task also. Fixes: #243 --- firenado/management/tasks.py | 1 + firenado/tornadoweb.py | 15 +++++++++------ tests/tornadoweb_test.py | 8 +++++++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/firenado/management/tasks.py b/firenado/management/tasks.py index 5a18857..e3e5438 100644 --- a/firenado/management/tasks.py +++ b/firenado/management/tasks.py @@ -126,6 +126,7 @@ def run(self, namespace): app_type = firenado.conf.app['types'][firenado.conf.app['type']] launcher = get_class_from_config(app_type['launcher'])(**parameters) + launcher.load() launcher.launch() diff --git a/firenado/tornadoweb.py b/firenado/tornadoweb.py index bca520a..123f507 100644 --- a/firenado/tornadoweb.py +++ b/firenado/tornadoweb.py @@ -56,6 +56,9 @@ def __init__(self, addresses=None, dir=None, port=None): os.chdir(self.dir) reload(firenado.conf) + def load(self): + return None + def launch(self): return None @@ -187,23 +190,23 @@ class TornadoLauncher(FirenadoLauncher): def __init__(self, addresses=None, dir=None, port=None): super(TornadoLauncher, self).__init__(addresses, dir, port) self.http_server = None + self.application = None self.MAX_WAIT_SECONDS_BEFORE_SHUTDOWN = firenado.conf.app[ 'wait_before_shutdown'] - def launch(self): - import signal - + def load(self): # TODO: Resolve module if doesn't exists if firenado.conf.app['pythonpath']: sys.path.append(firenado.conf.app['pythonpath']) + self.application = TornadoApplication(debug=firenado.conf.app['debug']) + def launch(self): + import signal signal.signal(signal.SIGTERM, self.sig_handler) signal.signal(signal.SIGINT, self.sig_handler) if os.name == "posix": signal.signal(signal.SIGTSTP, self.sig_handler) - self.application = TornadoApplication(debug=firenado.conf.app['debug']) - self.http_server = tornado.httpserver.HTTPServer( - self.application) + self.http_server = tornado.httpserver.HTTPServer(self.application) if firenado.conf.app['socket']: from tornado.netutil import bind_unix_socket socket = bind_unix_socket(firenado.conf.app['socket']) diff --git a/tests/tornadoweb_test.py b/tests/tornadoweb_test.py index fee2714..f8535e6 100644 --- a/tests/tornadoweb_test.py +++ b/tests/tornadoweb_test.py @@ -20,7 +20,7 @@ import firenado.conf from firenado.tornadoweb import TornadoApplication from firenado.tornadoweb import TornadoHandler -from firenado.tornadoweb import FirenadoLauncher +from firenado.tornadoweb import FirenadoLauncher, TornadoLauncher from firenado.tornadoweb import TornadoComponent import unittest from tests import chdir_app @@ -137,3 +137,9 @@ def test_parameters_set(self): self.assertEqual(addresses, launcher.addresses) self.assertEqual(dir, launcher.dir) self.assertEqual(port, launcher.port) + + def test_load(self): + chdir_app('tornadoweb') + launcher = TornadoLauncher() + launcher.load() + self.assertTrue(isinstance(launcher.application, TornadoApplication))