forked from openlp/openlp
Cleanups and more tests
This commit is contained in:
parent
25d74260ce
commit
fc80e3d106
@ -103,7 +103,7 @@ class Plugin(QtCore.QObject):
|
|||||||
``add_export_menu_Item(export_menu)``
|
``add_export_menu_Item(export_menu)``
|
||||||
Add an item to the Export menu.
|
Add an item to the Export menu.
|
||||||
|
|
||||||
``create_settings_Tab()``
|
``create_settings_tab()``
|
||||||
Creates a new instance of SettingsTabItem to be used in the Settings
|
Creates a new instance of SettingsTabItem to be used in the Settings
|
||||||
dialog.
|
dialog.
|
||||||
|
|
||||||
@ -252,7 +252,7 @@ class Plugin(QtCore.QObject):
|
|||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def create_settings_Tab(self, parent):
|
def create_settings_tab(self, parent):
|
||||||
"""
|
"""
|
||||||
Create a tab for the settings window to display the configurable options
|
Create a tab for the settings window to display the configurable options
|
||||||
for this plugin to the user.
|
for this plugin to the user.
|
||||||
|
@ -153,7 +153,7 @@ class PluginManager(object):
|
|||||||
"""
|
"""
|
||||||
for plugin in self.plugins:
|
for plugin in self.plugins:
|
||||||
if plugin.status is not PluginStatus.Disabled:
|
if plugin.status is not PluginStatus.Disabled:
|
||||||
plugin.create_settings_Tab(self.settings_form)
|
plugin.create_settings_tab(self.settings_form)
|
||||||
|
|
||||||
def hook_import_menu(self):
|
def hook_import_menu(self):
|
||||||
"""
|
"""
|
||||||
|
@ -54,7 +54,7 @@ class MediaPlugin(Plugin):
|
|||||||
# passed with drag and drop messages
|
# passed with drag and drop messages
|
||||||
self.dnd_id = u'Media'
|
self.dnd_id = u'Media'
|
||||||
|
|
||||||
def create_settings_Tab(self, parent):
|
def create_settings_tab(self, parent):
|
||||||
"""
|
"""
|
||||||
Create the settings Tab
|
Create the settings Tab
|
||||||
"""
|
"""
|
||||||
|
@ -69,7 +69,7 @@ class PresentationPlugin(Plugin):
|
|||||||
self.icon_path = u':/plugins/plugin_presentations.png'
|
self.icon_path = u':/plugins/plugin_presentations.png'
|
||||||
self.icon = build_icon(self.icon_path)
|
self.icon = build_icon(self.icon_path)
|
||||||
|
|
||||||
def create_settings_Tab(self, parent):
|
def create_settings_tab(self, parent):
|
||||||
"""
|
"""
|
||||||
Create the settings Tab
|
Create the settings Tab
|
||||||
"""
|
"""
|
||||||
|
@ -74,7 +74,7 @@ class TestPluginManager(TestCase):
|
|||||||
# WHEN: We run hook_settings_tabs()
|
# WHEN: We run hook_settings_tabs()
|
||||||
plugin_manager.hook_settings_tabs()
|
plugin_manager.hook_settings_tabs()
|
||||||
|
|
||||||
# THEN: The create_settings_Tab() method should have been called
|
# THEN: The hook_settings_tabs() method should have been called
|
||||||
assert mocked_plugin.create_media_manager_item.call_count == 0, \
|
assert mocked_plugin.create_media_manager_item.call_count == 0, \
|
||||||
u'The create_media_manager_item() method should not have been called.'
|
u'The create_media_manager_item() method should not have been called.'
|
||||||
|
|
||||||
@ -94,8 +94,8 @@ class TestPluginManager(TestCase):
|
|||||||
# WHEN: We run hook_settings_tabs()
|
# WHEN: We run hook_settings_tabs()
|
||||||
plugin_manager.hook_settings_tabs()
|
plugin_manager.hook_settings_tabs()
|
||||||
|
|
||||||
# THEN: The create_settings_Tab() method should not have been called, but the plugins lists should be the same
|
# THEN: The create_settings_tab() method should not have been called, but the plugins lists should be the same
|
||||||
assert mocked_plugin.create_settings_Tab.call_count == 0, \
|
assert mocked_plugin.create_settings_tab.call_count == 0, \
|
||||||
u'The create_media_manager_item() method should not have been called.'
|
u'The create_media_manager_item() method should not have been called.'
|
||||||
self.assertEqual(mocked_settings_form.plugin_manager.plugins, plugin_manager.plugins,
|
self.assertEqual(mocked_settings_form.plugin_manager.plugins, plugin_manager.plugins,
|
||||||
u'The plugins on the settings form should be the same as the plugins in the plugin manager')
|
u'The plugins on the settings form should be the same as the plugins in the plugin manager')
|
||||||
@ -117,7 +117,7 @@ class TestPluginManager(TestCase):
|
|||||||
plugin_manager.hook_settings_tabs()
|
plugin_manager.hook_settings_tabs()
|
||||||
|
|
||||||
# THEN: The create_media_manager_item() method should have been called with the mocked settings form
|
# THEN: The create_media_manager_item() method should have been called with the mocked settings form
|
||||||
assert mocked_plugin.create_settings_Tab.call_count == 1, \
|
assert mocked_plugin.create_settings_tab.call_count == 1, \
|
||||||
u'The create_media_manager_item() method should have been called once.'
|
u'The create_media_manager_item() method should have been called once.'
|
||||||
self.assertEqual(mocked_settings_form.plugin_manager.plugins, plugin_manager.plugins,
|
self.assertEqual(mocked_settings_form.plugin_manager.plugins, plugin_manager.plugins,
|
||||||
u'The plugins on the settings form should be the same as the plugins in the plugin manager')
|
u'The plugins on the settings form should be the same as the plugins in the plugin manager')
|
||||||
@ -135,8 +135,8 @@ class TestPluginManager(TestCase):
|
|||||||
# WHEN: We run hook_settings_tabs()
|
# WHEN: We run hook_settings_tabs()
|
||||||
plugin_manager.hook_settings_tabs()
|
plugin_manager.hook_settings_tabs()
|
||||||
|
|
||||||
# THEN: The create_settings_Tab() method should have been called
|
# THEN: The create_settings_tab() method should have been called
|
||||||
mocked_plugin.create_settings_Tab.assert_called_with(self.mocked_settings_form)
|
mocked_plugin.create_settings_tab.assert_called_with(self.mocked_settings_form)
|
||||||
|
|
||||||
def hook_import_menu_with_disabled_plugin_test(self):
|
def hook_import_menu_with_disabled_plugin_test(self):
|
||||||
"""
|
"""
|
||||||
|
@ -30,8 +30,10 @@ class TestAppLocation(TestCase):
|
|||||||
mocked_get_directory.return_value = u'test/dir'
|
mocked_get_directory.return_value = u'test/dir'
|
||||||
mocked_check_directory_exists.return_value = True
|
mocked_check_directory_exists.return_value = True
|
||||||
mocked_os.path.normpath.return_value = u'test/dir'
|
mocked_os.path.normpath.return_value = u'test/dir'
|
||||||
|
|
||||||
# WHEN: we call AppLocation.get_data_path()
|
# WHEN: we call AppLocation.get_data_path()
|
||||||
data_path = AppLocation.get_data_path()
|
data_path = AppLocation.get_data_path()
|
||||||
|
|
||||||
# THEN: check that all the correct methods were called, and the result is correct
|
# THEN: check that all the correct methods were called, and the result is correct
|
||||||
mocked_settings.contains.assert_called_with(u'advanced/data path')
|
mocked_settings.contains.assert_called_with(u'advanced/data path')
|
||||||
mocked_get_directory.assert_called_with(AppLocation.DataDir)
|
mocked_get_directory.assert_called_with(AppLocation.DataDir)
|
||||||
@ -49,8 +51,10 @@ class TestAppLocation(TestCase):
|
|||||||
mocked_settings.contains.return_value = True
|
mocked_settings.contains.return_value = True
|
||||||
mocked_settings.value.return_value.toString.return_value = u'custom/dir'
|
mocked_settings.value.return_value.toString.return_value = u'custom/dir'
|
||||||
mocked_os.path.normpath.return_value = u'custom/dir'
|
mocked_os.path.normpath.return_value = u'custom/dir'
|
||||||
|
|
||||||
# WHEN: we call AppLocation.get_data_path()
|
# WHEN: we call AppLocation.get_data_path()
|
||||||
data_path = AppLocation.get_data_path()
|
data_path = AppLocation.get_data_path()
|
||||||
|
|
||||||
# THEN: the mocked Settings methods were called and the value returned was our set up value
|
# THEN: the mocked Settings methods were called and the value returned was our set up value
|
||||||
mocked_settings.contains.assert_called_with(u'advanced/data path')
|
mocked_settings.contains.assert_called_with(u'advanced/data path')
|
||||||
mocked_settings.value.assert_called_with(u'advanced/data path')
|
mocked_settings.value.assert_called_with(u'advanced/data path')
|
||||||
@ -100,8 +104,10 @@ class TestAppLocation(TestCase):
|
|||||||
# GIVEN: A mocked out AppLocation.get_data_path()
|
# GIVEN: A mocked out AppLocation.get_data_path()
|
||||||
mocked_get_data_path.return_value = u'test/dir'
|
mocked_get_data_path.return_value = u'test/dir'
|
||||||
mocked_check_directory_exists.return_value = True
|
mocked_check_directory_exists.return_value = True
|
||||||
|
|
||||||
# WHEN: we call AppLocation.get_data_path()
|
# WHEN: we call AppLocation.get_data_path()
|
||||||
data_path = AppLocation.get_section_data_path(u'section')
|
data_path = AppLocation.get_section_data_path(u'section')
|
||||||
|
|
||||||
# THEN: check that all the correct methods were called, and the result is correct
|
# THEN: check that all the correct methods were called, and the result is correct
|
||||||
mocked_check_directory_exists.assert_called_with(u'test/dir/section')
|
mocked_check_directory_exists.assert_called_with(u'test/dir/section')
|
||||||
assert data_path == u'test/dir/section', u'Result should be "test/dir/section"'
|
assert data_path == u'test/dir/section', u'Result should be "test/dir/section"'
|
||||||
@ -112,8 +118,10 @@ class TestAppLocation(TestCase):
|
|||||||
"""
|
"""
|
||||||
with patch(u'openlp.core.utils.applocation._get_frozen_path') as mocked_get_frozen_path:
|
with patch(u'openlp.core.utils.applocation._get_frozen_path') as mocked_get_frozen_path:
|
||||||
mocked_get_frozen_path.return_value = u'app/dir'
|
mocked_get_frozen_path.return_value = u'app/dir'
|
||||||
|
|
||||||
# WHEN: We call AppLocation.get_directory
|
# WHEN: We call AppLocation.get_directory
|
||||||
directory = AppLocation.get_directory(AppLocation.AppDir)
|
directory = AppLocation.get_directory(AppLocation.AppDir)
|
||||||
|
|
||||||
# THEN:
|
# THEN:
|
||||||
assert directory == u'app/dir', u'Directory should be "app/dir"'
|
assert directory == u'app/dir', u'Directory should be "app/dir"'
|
||||||
|
|
||||||
@ -130,8 +138,10 @@ class TestAppLocation(TestCase):
|
|||||||
mocked_get_frozen_path.return_value = u'plugins/dir'
|
mocked_get_frozen_path.return_value = u'plugins/dir'
|
||||||
mocked_sys.frozen = 1
|
mocked_sys.frozen = 1
|
||||||
mocked_sys.argv = ['openlp']
|
mocked_sys.argv = ['openlp']
|
||||||
|
|
||||||
# WHEN: We call AppLocation.get_directory
|
# WHEN: We call AppLocation.get_directory
|
||||||
directory = AppLocation.get_directory(AppLocation.PluginsDir)
|
directory = AppLocation.get_directory(AppLocation.PluginsDir)
|
||||||
|
|
||||||
# THEN:
|
# THEN:
|
||||||
assert directory == u'plugins/dir', u'Directory should be "plugins/dir"'
|
assert directory == u'plugins/dir', u'Directory should be "plugins/dir"'
|
||||||
|
|
||||||
|
108
tests/functional/openlp_plugins/remotes/test_remotetab.py
Normal file
108
tests/functional/openlp_plugins/remotes/test_remotetab.py
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
"""
|
||||||
|
This module contains tests for the lib submodule of the Remotes plugin.
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
from unittest import TestCase
|
||||||
|
from tempfile import mkstemp
|
||||||
|
from mock import patch
|
||||||
|
|
||||||
|
from openlp.core.lib import Settings
|
||||||
|
from openlp.plugins.remotes.lib.remotetab import RemoteTab
|
||||||
|
|
||||||
|
from PyQt4 import QtGui
|
||||||
|
|
||||||
|
__default_settings__ = {
|
||||||
|
u'remotes/twelve hour': True,
|
||||||
|
u'remotes/port': 4316,
|
||||||
|
u'remotes/https port': 4317,
|
||||||
|
u'remotes/https enabled': False,
|
||||||
|
u'remotes/user id': u'openlp',
|
||||||
|
u'remotes/password': u'password',
|
||||||
|
u'remotes/authentication enabled': False,
|
||||||
|
u'remotes/ip address': u'0.0.0.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
ZERO_URL = u'0.0.0.0'
|
||||||
|
|
||||||
|
TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), u'..', u'..', u'..', u'resources'))
|
||||||
|
|
||||||
|
|
||||||
|
class TestRemoteTab(TestCase):
|
||||||
|
"""
|
||||||
|
Test the functions in the :mod:`lib` module.
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
"""
|
||||||
|
Create the UI
|
||||||
|
"""
|
||||||
|
fd, self.ini_file = mkstemp(u'.ini')
|
||||||
|
Settings().set_filename(self.ini_file)
|
||||||
|
self.application = QtGui.QApplication.instance()
|
||||||
|
Settings().extend_default_settings(__default_settings__)
|
||||||
|
self.parent = QtGui.QMainWindow()
|
||||||
|
self.form = RemoteTab(self.parent, u'Remotes', None, None)
|
||||||
|
|
||||||
|
def tearDown(self):
|
||||||
|
"""
|
||||||
|
Delete all the C++ objects at the end so that we don't have a segfault
|
||||||
|
"""
|
||||||
|
del self.application
|
||||||
|
del self.parent
|
||||||
|
del self.form
|
||||||
|
os.unlink(self.ini_file)
|
||||||
|
|
||||||
|
def set_basic_urls_test(self):
|
||||||
|
"""
|
||||||
|
Test the set_urls function with standard defaults
|
||||||
|
"""
|
||||||
|
# GIVEN: A mocked location
|
||||||
|
with patch(u'openlp.core.utils.applocation.Settings') as mocked_class, \
|
||||||
|
patch(u'openlp.core.utils.AppLocation.get_directory') as mocked_get_directory, \
|
||||||
|
patch(u'openlp.core.utils.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
||||||
|
patch(u'openlp.core.utils.applocation.os') as mocked_os:
|
||||||
|
# GIVEN: A mocked out Settings class and a mocked out AppLocation.get_directory()
|
||||||
|
mocked_settings = mocked_class.return_value
|
||||||
|
mocked_settings.contains.return_value = False
|
||||||
|
mocked_get_directory.return_value = u'test/dir'
|
||||||
|
mocked_check_directory_exists.return_value = True
|
||||||
|
mocked_os.path.normpath.return_value = u'test/dir'
|
||||||
|
|
||||||
|
# WHEN: when the set_urls is called having reloaded the form.
|
||||||
|
self.form.load()
|
||||||
|
self.form.set_urls()
|
||||||
|
# THEN: the following screen values should be set
|
||||||
|
self.assertEqual(self.form.address_edit.text(), ZERO_URL, u'The default URL should be set on the screen')
|
||||||
|
self.assertEqual(self.form.https_settings_group_box.isEnabled(), False,
|
||||||
|
u'The Https box should not be enabled')
|
||||||
|
self.assertEqual(self.form.https_settings_group_box.isChecked(), False,
|
||||||
|
u'The Https checked box should note be Checked')
|
||||||
|
self.assertEqual(self.form.user_login_group_box.isChecked(), False,
|
||||||
|
u'The authentication box should not be enabled')
|
||||||
|
|
||||||
|
def set_certificate_urls_test(self):
|
||||||
|
"""
|
||||||
|
Test the set_urls function with certificate available
|
||||||
|
"""
|
||||||
|
# GIVEN: A mocked location
|
||||||
|
with patch(u'openlp.core.utils.applocation.Settings') as mocked_class, \
|
||||||
|
patch(u'openlp.core.utils.AppLocation.get_directory') as mocked_get_directory, \
|
||||||
|
patch(u'openlp.core.utils.applocation.check_directory_exists') as mocked_check_directory_exists, \
|
||||||
|
patch(u'openlp.core.utils.applocation.os') as mocked_os:
|
||||||
|
# GIVEN: A mocked out Settings class and a mocked out AppLocation.get_directory()
|
||||||
|
mocked_settings = mocked_class.return_value
|
||||||
|
mocked_settings.contains.return_value = False
|
||||||
|
mocked_get_directory.return_value = TEST_PATH
|
||||||
|
mocked_check_directory_exists.return_value = True
|
||||||
|
mocked_os.path.normpath.return_value = TEST_PATH
|
||||||
|
|
||||||
|
# WHEN: when the set_urls is called having reloaded the form.
|
||||||
|
self.form.load()
|
||||||
|
self.form.set_urls()
|
||||||
|
# THEN: the following screen values should be set
|
||||||
|
self.assertEqual(self.form.http_settings_group_box.isEnabled(), True,
|
||||||
|
u'The Http group box should be enabled')
|
||||||
|
self.assertEqual(self.form.https_settings_group_box.isChecked(), False,
|
||||||
|
u'The Https checked box should be Checked')
|
||||||
|
self.assertEqual(self.form.https_settings_group_box.isEnabled(), True,
|
||||||
|
u'The Https box should be enabled')
|
0
tests/resources/remotes/openlp.crt
Normal file
0
tests/resources/remotes/openlp.crt
Normal file
0
tests/resources/remotes/openlp.key
Normal file
0
tests/resources/remotes/openlp.key
Normal file
Loading…
Reference in New Issue
Block a user