mirror of https://gitlab.com/openlp/openlp.git
Starting web services later to fix #1210
This commit is contained in:
parent
7dd2c98467
commit
0500f3b799
|
@ -78,9 +78,6 @@ class HttpServer(RegistryBase, RegistryProperties, LogMixin):
|
|||
"""
|
||||
super(HttpServer, self).__init__(parent)
|
||||
Registry().register('authentication_token', token_hex())
|
||||
if not Registry().get_flag('no_web_server'):
|
||||
worker = HttpWorker()
|
||||
run_thread(worker, 'http_server')
|
||||
|
||||
def bootstrap_post_set_up(self):
|
||||
"""
|
||||
|
@ -89,3 +86,6 @@ class HttpServer(RegistryBase, RegistryProperties, LogMixin):
|
|||
create_paths(AppLocation.get_section_data_path('remotes'))
|
||||
self.poller = Poller()
|
||||
Registry().register('poller', self.poller)
|
||||
if not Registry().get_flag('no_web_server'):
|
||||
worker = HttpWorker()
|
||||
run_thread(worker, 'http_server')
|
||||
|
|
|
@ -33,7 +33,7 @@ import time
|
|||
from websockets import serve
|
||||
|
||||
from openlp.core.common.mixins import LogMixin, RegistryProperties
|
||||
from openlp.core.common.registry import Registry
|
||||
from openlp.core.common.registry import Registry, RegistryBase
|
||||
from openlp.core.threading import ThreadWorker, run_thread
|
||||
from openlp.core.api.websocketspoll import WebSocketPoller
|
||||
|
||||
|
@ -165,7 +165,7 @@ class WebSocketWorker(ThreadWorker, RegistryProperties, LogMixin):
|
|||
self.event_loop.call_soon_threadsafe(queue.put_nowait, state)
|
||||
|
||||
|
||||
class WebSocketServer(RegistryProperties, QtCore.QObject, LogMixin):
|
||||
class WebSocketServer(RegistryBase, RegistryProperties, QtCore.QObject, LogMixin):
|
||||
"""
|
||||
Wrapper round a server instance
|
||||
"""
|
||||
|
@ -176,6 +176,9 @@ class WebSocketServer(RegistryProperties, QtCore.QObject, LogMixin):
|
|||
super(WebSocketServer, self).__init__()
|
||||
self.worker = None
|
||||
|
||||
def bootstrap_post_set_up(self):
|
||||
self.start()
|
||||
|
||||
def start(self):
|
||||
"""
|
||||
Starts the WebSockets server
|
||||
|
|
|
@ -480,9 +480,6 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow, LogMixin, RegistryPropert
|
|||
self.copy_data = False
|
||||
self.settings.set_up_default_values()
|
||||
self.about_form = AboutForm(self)
|
||||
self.ws_server = WebSocketServer()
|
||||
self.ws_server.start()
|
||||
self.http_server = HttpServer(self)
|
||||
SettingsForm(self)
|
||||
self.formatting_tag_form = FormattingTagForm(self)
|
||||
self.shortcut_form = ShortcutListForm(self)
|
||||
|
@ -526,6 +523,9 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow, LogMixin, RegistryPropert
|
|||
Registry().register_function('bootstrap_post_set_up', self.bootstrap_post_set_up)
|
||||
# Reset the cursor
|
||||
self.application.set_normal_cursor()
|
||||
# Starting up web services
|
||||
self.http_server = HttpServer(self)
|
||||
self.ws_server = WebSocketServer()
|
||||
|
||||
def _wait_for_threads(self):
|
||||
"""
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
"""
|
||||
Functional tests to test the Http Server Class.
|
||||
"""
|
||||
from pathlib import Path
|
||||
from unittest.mock import patch
|
||||
|
||||
from openlp.core.api.http.server import HttpServer
|
||||
|
@ -29,14 +30,17 @@ from openlp.core.common.registry import Registry
|
|||
|
||||
@patch('openlp.core.api.http.server.HttpWorker')
|
||||
@patch('openlp.core.api.http.server.run_thread')
|
||||
def test_server_start(mocked_run_thread, MockHttpWorker, registry):
|
||||
@patch('openlp.core.api.deploy.AppLocation.get_section_data_path')
|
||||
def test_server_start(mocked_get_section_data_path, mocked_run_thread, MockHttpWorker, registry):
|
||||
"""
|
||||
Test the starting of the Waitress Server with the disable flag set off
|
||||
"""
|
||||
# GIVEN: A new httpserver
|
||||
# GIVEN: A new httpserver and mocked get_section_data_path
|
||||
mocked_get_section_data_path.return_value = Path('.')
|
||||
# WHEN: I start the server
|
||||
Registry().set_flag('no_web_server', False)
|
||||
HttpServer()
|
||||
server = HttpServer()
|
||||
server.bootstrap_post_set_up()
|
||||
|
||||
# THEN: the api environment should have been created
|
||||
assert mocked_run_thread.call_count == 1, 'The qthread should have been called once'
|
||||
|
@ -45,14 +49,18 @@ def test_server_start(mocked_run_thread, MockHttpWorker, registry):
|
|||
|
||||
@patch('openlp.core.api.http.server.HttpWorker')
|
||||
@patch('openlp.core.api.http.server.run_thread')
|
||||
def test_server_start_not_required(mocked_run_thread, MockHttpWorker, registry):
|
||||
@patch('openlp.core.api.deploy.AppLocation.get_section_data_path')
|
||||
def test_server_start_not_required(mocked_get_section_data_path, mocked_run_thread, MockHttpWorker, registry):
|
||||
"""
|
||||
Test the starting of the Waitress Server with the disable flag set off
|
||||
"""
|
||||
# GIVEN: A new httpserver
|
||||
# GIVEN: A new httpserver and mocked get_section_data_path
|
||||
mocked_get_section_data_path.return_value = Path('.')
|
||||
|
||||
# WHEN: I start the server
|
||||
Registry().set_flag('no_web_server', True)
|
||||
HttpServer()
|
||||
server = HttpServer()
|
||||
server.bootstrap_post_set_up()
|
||||
|
||||
# THEN: the api environment should have been created
|
||||
assert mocked_run_thread.call_count == 0, 'The qthread should not have have been called'
|
||||
|
|
|
@ -349,10 +349,10 @@ def test_mainwindow_configuration(main_window):
|
|||
# WHEN: you check the started functions
|
||||
|
||||
# THEN: the following registry functions should have been registered
|
||||
expected_service_list = ['settings', 'settings_thread', 'application', 'main_window', 'http_server',
|
||||
'authentication_token', 'settings_form', 'service_manager', 'theme_manager',
|
||||
'projector_manager']
|
||||
expected_functions_list = ['bootstrap_initialise', 'bootstrap_post_set_up', 'bootstrap_completion',
|
||||
expected_service_list = ['settings', 'settings_thread', 'application', 'main_window', 'settings_form',
|
||||
'service_manager', 'theme_manager', 'projector_manager', 'http_server',
|
||||
'authentication_token', 'web_socket_server']
|
||||
expected_functions_list = ['bootstrap_post_set_up', 'bootstrap_initialise', 'bootstrap_completion',
|
||||
'config_screen_changed', 'theme_change_global']
|
||||
assert list(Registry().service_list.keys()) == expected_service_list, \
|
||||
'The service list should have been {}'.format(Registry().service_list.keys())
|
||||
|
|
Loading…
Reference in New Issue