From 8a1b62fdcd25219803f7f6a21df70dc890316ce8 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 4 Apr 2016 21:41:08 +0100 Subject: [PATCH] move tests --- .../openlp_core_common/test_init.py | 81 ++++++++++++- .../functional/openlp_core_utils/test_init.py | 111 ------------------ 2 files changed, 79 insertions(+), 113 deletions(-) delete mode 100644 tests/functional/openlp_core_utils/test_init.py diff --git a/tests/functional/openlp_core_common/test_init.py b/tests/functional/openlp_core_common/test_init.py index 2a8a3215d..6754874b0 100644 --- a/tests/functional/openlp_core_common/test_init.py +++ b/tests/functional/openlp_core_common/test_init.py @@ -24,8 +24,8 @@ Functional tests to test the AppLocation class and related methods. """ from unittest import TestCase -from openlp.core.common import add_actions, get_uno_instance -from tests.functional import MagicMock +from openlp.core.common import add_actions, get_uno_instance, get_uno_command, get_frozen_path +from tests.functional import MagicMock, patch class TestInit(TestCase): @@ -33,6 +33,18 @@ class TestInit(TestCase): A test suite to test out various methods around the common __init__ class. """ + def setUp(self): + """ + Create an instance and a few example actions. + """ + self.build_settings() + + def tearDown(self): + """ + Clean up + """ + self.destroy_settings() + def add_actions_empty_list_test(self): """ Test that no actions are added when the list is empty @@ -118,3 +130,68 @@ class TestInit(TestCase): # THEN: the resolve method is called with the correct argument mock_resolver.resolve.assert_called_with('uno:socket,host=localhost,port=2002;urp;StarOffice.ComponentContext') + + 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 = 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 = 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: a FileNotFoundError exception should be raised + self.assertRaises(FileNotFoundError, 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: + """ + + # GIVEN: A patched 'which' method which returns 'libreoffice' + with patch('openlp.core.utils.which', **{'return_value': 'libreoffice'}): + # WHEN: Calling get_uno_command with a connection type other than pipe + result = get_uno_command('socket') + + # THEN: The connection parameters should be set for socket + self.assertEqual(result, 'libreoffice --nologo --norestore --minimized --nodefault --nofirststartwizard' + ' "--accept=socket,host=localhost,port=2002;urp;"') + diff --git a/tests/functional/openlp_core_utils/test_init.py b/tests/functional/openlp_core_utils/test_init.py deleted file mode 100644 index c2ff662b3..000000000 --- a/tests/functional/openlp_core_utils/test_init.py +++ /dev/null @@ -1,111 +0,0 @@ -# -*- coding: utf-8 -*- -# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 - -############################################################################### -# OpenLP - Open Source Lyrics Projection # -# --------------------------------------------------------------------------- # -# Copyright (c) 2008-2016 OpenLP Developers # -# --------------------------------------------------------------------------- # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the Free # -# Software Foundation; version 2 of the License. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with this program; if not, write to the Free Software Foundation, Inc., 59 # -# Temple Place, Suite 330, Boston, MA 02111-1307 USA # -############################################################################### -""" -Package to test the openlp.core.utils.actions package. -""" -from unittest import TestCase - -from openlp.core.common import get_uno_command -from tests.functional import patch -from tests.helpers.testmixin import TestMixin - - -class TestInitFunctions(TestMixin, TestCase): - - def setUp(self): - """ - Create an instance and a few example actions. - """ - self.build_settings() - - def tearDown(self): - """ - Clean up - """ - self.destroy_settings() - - - 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 = 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 = 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: a FileNotFoundError exception should be raised - self.assertRaises(FileNotFoundError, 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: - """ - - # GIVEN: A patched 'which' method which returns 'libreoffice' - with patch('openlp.core.utils.which', **{'return_value': 'libreoffice'}): - - # WHEN: Calling get_uno_command with a connection type other than pipe - result = get_uno_command('socket') - - # THEN: The connection parameters should be set for socket - self.assertEqual(result, 'libreoffice --nologo --norestore --minimized --nodefault --nofirststartwizard' - ' "--accept=socket,host=localhost,port=2002;urp;"')