Tim Bentley 2017-12-02 16:31:48 +00:00 committed by Phill Ridout
commit c0fb7bc3aa
6 changed files with 52 additions and 19 deletions

View File

@ -82,13 +82,14 @@ class HttpServer(RegistryBase, RegistryProperties, LogMixin):
Initialise the http server, and start the http server Initialise the http server, and start the http server
""" """
super(HttpServer, self).__init__(parent) super(HttpServer, self).__init__(parent)
self.worker = HttpWorker() if Registry().get_flag('no_web_server'):
self.thread = QtCore.QThread() self.worker = HttpWorker()
self.worker.moveToThread(self.thread) self.thread = QtCore.QThread()
self.thread.started.connect(self.worker.run) self.worker.moveToThread(self.thread)
self.thread.start() self.thread.started.connect(self.worker.run)
Registry().register_function('download_website', self.first_time) self.thread.start()
Registry().register_function('get_website_version', self.website_version) Registry().register_function('download_website', self.first_time)
Registry().register_function('get_website_version', self.website_version)
Registry().set_flag('website_version', '0.0') Registry().set_flag('website_version', '0.0')
def bootstrap_post_set_up(self): def bootstrap_post_set_up(self):

View File

@ -70,12 +70,13 @@ class WebSocketServer(RegistryProperties, LogMixin):
Initialise and start the WebSockets server Initialise and start the WebSockets server
""" """
super(WebSocketServer, self).__init__() super(WebSocketServer, self).__init__()
self.settings_section = 'api' if Registry().get_flag('no_web_server'):
self.worker = WebSocketWorker(self) self.settings_section = 'api'
self.thread = QtCore.QThread() self.worker = WebSocketWorker(self)
self.worker.moveToThread(self.thread) self.thread = QtCore.QThread()
self.thread.started.connect(self.worker.run) self.worker.moveToThread(self.thread)
self.thread.start() self.thread.started.connect(self.worker.run)
self.thread.start()
def start_server(self): def start_server(self):
""" """

View File

@ -504,9 +504,8 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow, RegistryProperties):
Settings().set_up_default_values() Settings().set_up_default_values()
self.about_form = AboutForm(self) self.about_form = AboutForm(self)
MediaController() MediaController()
if Registry().get_flag('no_web_server'): websockets.WebSocketServer()
websockets.WebSocketServer() server.HttpServer()
server.HttpServer()
SettingsForm(self) SettingsForm(self)
self.formatting_tag_form = FormattingTagForm(self) self.formatting_tag_form = FormattingTagForm(self)
self.shortcut_form = ShortcutListForm(self) self.shortcut_form = ShortcutListForm(self)

View File

@ -45,12 +45,28 @@ class TestHttpServer(TestCase):
@patch('openlp.core.api.http.server.QtCore.QThread') @patch('openlp.core.api.http.server.QtCore.QThread')
def test_server_start(self, mock_qthread, mock_thread): def test_server_start(self, mock_qthread, mock_thread):
""" """
Test the starting of the Waitress Server Test the starting of the Waitress Server with the disable flag set off
""" """
# GIVEN: A new httpserver # GIVEN: A new httpserver
# WHEN: I start the server # WHEN: I start the server
Registry().set_flag('no_web_server', True)
HttpServer() HttpServer()
# THEN: the api environment should have been created # THEN: the api environment should have been created
self.assertEquals(1, mock_qthread.call_count, 'The qthread should have been called once') self.assertEquals(1, mock_qthread.call_count, 'The qthread should have been called once')
self.assertEquals(1, mock_thread.call_count, 'The http thread should have been called once') self.assertEquals(1, mock_thread.call_count, 'The http thread should have been called once')
@patch('openlp.core.api.http.server.HttpWorker')
@patch('openlp.core.api.http.server.QtCore.QThread')
def test_server_start_not_required(self, mock_qthread, mock_thread):
"""
Test the starting of the Waitress Server with the disable flag set off
"""
# GIVEN: A new httpserver
# WHEN: I start the server
Registry().set_flag('no_web_server', False)
HttpServer()
# THEN: the api environment should have been created
self.assertEquals(0, mock_qthread.call_count, 'The qthread should not have have been called')
self.assertEquals(0, mock_thread.call_count, 'The http thread should not have been called')

View File

@ -66,16 +66,32 @@ class TestWSServer(TestCase, TestMixin):
@patch('openlp.core.api.websockets.QtCore.QThread') @patch('openlp.core.api.websockets.QtCore.QThread')
def test_serverstart(self, mock_qthread, mock_worker): def test_serverstart(self, mock_qthread, mock_worker):
""" """
Test the starting of the WebSockets Server Test the starting of the WebSockets Server with the disabled flag set on
""" """
# GIVEN: A new httpserver # GIVEN: A new httpserver
# WHEN: I start the server # WHEN: I start the server
Registry().set_flag('no_web_server', True)
WebSocketServer() WebSocketServer()
# THEN: the api environment should have been created # THEN: the api environment should have been created
self.assertEquals(1, mock_qthread.call_count, 'The qthread should have been called once') self.assertEquals(1, mock_qthread.call_count, 'The qthread should have been called once')
self.assertEquals(1, mock_worker.call_count, 'The http thread should have been called once') self.assertEquals(1, mock_worker.call_count, 'The http thread should have been called once')
@patch('openlp.core.api.websockets.WebSocketWorker')
@patch('openlp.core.api.websockets.QtCore.QThread')
def test_serverstart_not_required(self, mock_qthread, mock_worker):
"""
Test the starting of the WebSockets Server with the disabled flag set off
"""
# GIVEN: A new httpserver and the server is not required
# WHEN: I start the server
Registry().set_flag('no_web_server', False)
WebSocketServer()
# THEN: the api environment should have been created
self.assertEquals(0, mock_qthread.call_count, 'The qthread should not have been called')
self.assertEquals(0, mock_worker.call_count, 'The http thread should not have been called')
def test_main_poll(self): def test_main_poll(self):
""" """
Test the main_poll function returns the correct JSON Test the main_poll function returns the correct JSON

View File

@ -155,7 +155,7 @@ class TestMainWindow(TestCase, TestMixin):
# WHEN: you check the started functions # WHEN: you check the started functions
# THEN: the following registry functions should have been registered # THEN: the following registry functions should have been registered
assert len(self.registry.service_list) == 12, \ assert len(self.registry.service_list) == 13, \
'The registry should have 12 services, got {}'.format(self.registry.service_list.keys()) 'The registry should have 12 services, got {}'.format(self.registry.service_list.keys())
assert len(self.registry.functions_list) == 19, \ assert len(self.registry.functions_list) == 19, \
'The registry should have 19 functions, got {}'.format(self.registry.functions_list.keys()) 'The registry should have 19 functions, got {}'.format(self.registry.functions_list.keys())