This commit is contained in:
Phill Ridout 2014-12-07 17:46:23 +00:00
parent e190bf30e9
commit 9d54d6351a
2 changed files with 74 additions and 2 deletions

View File

@ -414,6 +414,7 @@ def get_uno_command():
raise FileNotFoundError('Command not found') raise FileNotFoundError('Command not found')
OPTIONS = '--nologo --norestore --minimized --nodefault --nofirststartwizard' OPTIONS = '--nologo --norestore --minimized --nodefault --nofirststartwizard'
print(UNO_CONNECTION_TYPE)
if UNO_CONNECTION_TYPE == 'pipe': if UNO_CONNECTION_TYPE == 'pipe':
CONNECTION = '"--accept=pipe,name=openlp_pipe;urp;"' CONNECTION = '"--accept=pipe,name=openlp_pipe;urp;"'
else: else:

View File

@ -32,6 +32,7 @@ Package to test the openlp.core.utils.actions package.
from unittest import TestCase from unittest import TestCase
from openlp.core.common.settings import Settings from openlp.core.common.settings import Settings
from openlp.core import utils
from openlp.core.utils import VersionThread, get_application_version from openlp.core.utils import VersionThread, get_application_version
from tests.functional import MagicMock, patch from tests.functional import MagicMock, patch
from tests.helpers.testmixin import TestMixin from tests.helpers.testmixin import TestMixin
@ -62,9 +63,79 @@ class TestInitFunctions(TestMixin, TestCase):
# WHEN: We check to see if the version is different . # WHEN: We check to see if the version is different .
with patch('PyQt4.QtCore.QThread'),\ with patch('PyQt4.QtCore.QThread'),\
patch('openlp.core.utils.get_application_version') as mocked_get_application_version: patch('openlp.core.utils.get_application_version') as mocked_get_application_version:
mocked_get_application_version.return_value = \ mocked_get_application_version.return_value = {'version': '1.0.0', 'build': '', 'full': '2.0.4'}
{'version': '1.0.0', 'build': '', 'full': '2.0.4'}
version_thread = VersionThread(mocked_main_window) version_thread = VersionThread(mocked_main_window)
version_thread.run() version_thread.run()
# THEN: If the version has changed the main window is notified # THEN: If the version has changed the main window is notified
self.assertTrue(mocked_main_window.emit.called, 'The main windows should have been notified') self.assertTrue(mocked_main_window.emit.called, 'The main windows should have been notified')
def get_uno_command_libreoffice_command_exists_test(self):
"""
Test the ``get_uno_command`` function uses the libreoffice command when available.
:return:
"""
# GIVEN: A patched 'which' method which returns a path when called with 'libreoffice'
with patch('openlp.core.utils.which',
**{'side_effect': lambda command: {'libreoffice': '/usr/bin/libreoffice'}[command]}):
# WHEN: Calling get_uno_command
result = utils.get_uno_command()
# THEN: The command 'libreoffice' should be called with the appropriate parameters
self.assertEquals(result, 'libreoffice --nologo --norestore --minimized --nodefault --nofirststartwizard'
' "--accept=pipe,name=openlp_pipe;urp;"')
def get_uno_command_only_soffice_command_exists_test(self):
"""
Test the ``get_uno_command`` function uses the soffice command when the libreoffice command is not available.
:return:
"""
# GIVEN: A patched 'which' method which returns None when called with 'libreoffice' and a path when called with
# 'soffice'
with patch('openlp.core.utils.which',
**{'side_effect': lambda command: {'libreoffice': None, 'soffice': '/usr/bin/soffice'}[command]}):
# WHEN: Calling get_uno_command
result = utils.get_uno_command()
# THEN: The command 'soffice' should be called with the appropriate parameters
self.assertEquals(result, 'soffice --nologo --norestore --minimized --nodefault --nofirststartwizard'
' "--accept=pipe,name=openlp_pipe;urp;"')
def get_uno_command_when_no_command_exists_test(self):
"""
Test the ``get_uno_command`` function raises an FileNotFoundError when neither the libreoffice or soffice
commands are available.
:return:
"""
# GIVEN: A patched 'which' method which returns None
with patch('openlp.core.utils.which', **{'return_value': None}):
# WHEN: Calling get_uno_command
# THEN: The command 'soffice' should be called with the appropriate parameters
self.assertRaises(FileNotFoundError, utils.get_uno_command)
def get_uno_command_connection_type_test(self):
"""
Test the ``get_uno_command`` function when the connection type is anything other than pipe.
:return:
"""
original_type = utils.UNO_CONNECTION_TYPE
# GIVEN: A patched 'which' method which returns 'libreoffice'
with patch('openlp.core.utils.which', **{'return_value': 'libreoffice'}):
# WHEN: Calling get_uno_command
utils.UNO_CONNECTION_TYPE = 'socket'
result = utils.get_uno_command()
# THEN: The command 'soffice' should be called with the appropriate parameters
self.assertEqual(result, 'libreoffice --nologo --norestore --minimized --nodefault --nofirststartwizard'
' "--accept=socket,host=localhost,port=2002;urp;"')
utils.UNO_CONNECTION_TYPE = original_type