From 861e64ee8354705ec2986d3547ec55970a93b68d Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Tue, 19 Mar 2013 17:53:32 +0000 Subject: [PATCH] plugin 1 --- openlp/core/lib/plugin.py | 14 ++--- openlp/core/lib/pluginmanager.py | 12 ++-- openlp/core/ui/mainwindow.py | 6 +- openlp/core/ui/media/mediacontroller.py | 14 ++--- openlp/core/ui/media/mediaplayer.py | 2 +- openlp/core/ui/pluginform.py | 4 +- openlp/plugins/media/mediaplugin.py | 2 +- .../presentations/presentationplugin.py | 9 ++- openlp/plugins/songs/songsplugin.py | 5 +- openlp/plugins/songusage/songusageplugin.py | 5 +- .../openlp_core_lib/test_pluginmanager.py | 60 +++++++++---------- 11 files changed, 69 insertions(+), 64 deletions(-) diff --git a/openlp/core/lib/plugin.py b/openlp/core/lib/plugin.py index 9a20d7e1c..5eeed9421 100644 --- a/openlp/core/lib/plugin.py +++ b/openlp/core/lib/plugin.py @@ -90,10 +90,10 @@ class Plugin(QtCore.QObject): **Hook Functions** - ``checkPreConditions()`` + ``check_pre_conditions()`` Provides the Plugin with a handle to check if it can be loaded. - ``createMediaManagerItem()`` + ``create_media_manager_item()`` Creates a new instance of MediaManagerItem to be used in the Media Manager. @@ -174,7 +174,7 @@ class Plugin(QtCore.QObject): Registry().register_function(u'%s_add_service_item' % self.name, self.processAddServiceEvent) Registry().register_function(u'%s_config_updated' % self.name, self.config_update) - def checkPreConditions(self): + def check_pre_conditions(self): """ Provides the Plugin with a handle to check if it can be loaded. Failing Preconditions does not stop a settings Tab being created @@ -183,13 +183,13 @@ class Plugin(QtCore.QObject): """ return True - def setStatus(self): + def set_status(self): """ Sets the status of the plugin """ self.status = Settings().value(self.settingsSection + u'/status') - def toggleStatus(self, new_status): + def toggle_status(self, new_status): """ Changes the status of the plugin and remembers it """ @@ -200,7 +200,7 @@ class Plugin(QtCore.QObject): elif new_status == PluginStatus.Inactive: self.finalise() - def isActive(self): + def is_active(self): """ Indicates if the plugin is active @@ -208,7 +208,7 @@ class Plugin(QtCore.QObject): """ return self.status == PluginStatus.Active - def createMediaManagerItem(self): + def create_media_manager_item(self): """ Construct a MediaManagerItem object with all the buttons and things you need, and return it for integration into OpenLP. diff --git a/openlp/core/lib/pluginmanager.py b/openlp/core/lib/pluginmanager.py index e918d743a..8ad01075f 100644 --- a/openlp/core/lib/pluginmanager.py +++ b/openlp/core/lib/pluginmanager.py @@ -131,7 +131,7 @@ class PluginManager(object): for plugin in plugins_list: if plugin.checkPreConditions(): log.debug(u'Plugin %s active', unicode(plugin.name)) - plugin.setStatus() + plugin.set_status() else: plugin.status = PluginStatus.Disabled self.plugins.append(plugin) @@ -142,7 +142,7 @@ class PluginManager(object): """ for plugin in self.plugins: if plugin.status is not PluginStatus.Disabled: - plugin.createMediaManagerItem() + plugin.create_media_manager_item() def hook_settings_tabs(self): """ @@ -190,8 +190,8 @@ class PluginManager(object): """ log.info(u'Initialise Plugins - Started') for plugin in self.plugins: - log.info(u'initialising plugins %s in a %s state' % (plugin.name, plugin.isActive())) - if plugin.isActive(): + log.info(u'initialising plugins %s in a %s state' % (plugin.name, plugin.is_active())) + if plugin.is_active(): plugin.initialise() log.info(u'Initialisation Complete for %s ' % plugin.name) log.info(u'Initialise Plugins - Finished') @@ -203,7 +203,7 @@ class PluginManager(object): """ log.info(u'finalising plugins') for plugin in self.plugins: - if plugin.isActive(): + if plugin.is_active(): plugin.finalise() log.info(u'Finalisation Complete for %s ' % plugin.name) @@ -222,7 +222,7 @@ class PluginManager(object): """ log.info(u'plugins - new service created') for plugin in self.plugins: - if plugin.isActive(): + if plugin.is_active(): plugin.new_service_created() def _get_settings_form(self): diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index b559a784a..5c22ced78 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -607,7 +607,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): """ self.application.process_events() for plugin in self.plugin_manager.plugins: - if plugin.isActive(): + if plugin.is_active(): plugin.app_startup() self.application.process_events() @@ -654,10 +654,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): self.activePlugin.setStatus() if oldStatus != self.activePlugin.status: if self.activePlugin.status == PluginStatus.Active: - self.activePlugin.toggleStatus(PluginStatus.Active) + self.activePlugin.toggle_status(PluginStatus.Active) self.activePlugin.app_startup() else: - self.activePlugin.toggleStatus(PluginStatus.Inactive) + self.activePlugin.toggle_status(PluginStatus.Inactive) # Set global theme and Registry().execute(u'theme_update_global', self.theme_manager_contents.global_theme) self.theme_manager_contents.load_first_time_themes() diff --git a/openlp/core/ui/media/mediacontroller.py b/openlp/core/ui/media/mediacontroller.py index c6df532e4..9edbda90a 100644 --- a/openlp/core/ui/media/mediacontroller.py +++ b/openlp/core/ui/media/mediacontroller.py @@ -127,7 +127,7 @@ class MediaController(object): """ saved_players = get_media_players()[0] for player in self.media_players.keys(): - self.media_players[player].isActive = player in saved_players + self.media_players[player].is_active = player in saved_players def _generate_extensions_lists(self): """ @@ -135,14 +135,14 @@ class MediaController(object): """ self.audio_extensions_list = [] for player in self.media_players.values(): - if player.isActive: + if player.is_active: for item in player.audio_extensions_list: if not item in self.audio_extensions_list: self.audio_extensions_list.append(item) self.service_manager.supported_suffixes(item[2:]) self.video_extensions_list = [] for player in self.media_players.values(): - if player.isActive: + if player.is_active: for item in player.video_extensions_list: if item not in self.video_extensions_list: self.video_extensions_list.extend(item) @@ -224,7 +224,7 @@ class MediaController(object): """ css = u'' for player in self.media_players.values(): - if player.isActive: + if player.is_active: css += player.get_media_display_css() return css @@ -234,7 +234,7 @@ class MediaController(object): """ js = u'' for player in self.media_players.values(): - if player.isActive: + if player.is_active: js += player.get_media_display_javascript() return js @@ -244,7 +244,7 @@ class MediaController(object): """ html = u'' for player in self.media_players.values(): - if player.isActive: + if player.is_active: html += player.get_media_display_html() return html @@ -325,7 +325,7 @@ class MediaController(object): if preview: display.has_audio = False for player in self.media_players.values(): - if player.isActive: + if player.is_active: player.setup(display) def set_controls_visible(self, controller, value): diff --git a/openlp/core/ui/media/mediaplayer.py b/openlp/core/ui/media/mediaplayer.py index 48e86411e..1b296beb7 100644 --- a/openlp/core/ui/media/mediaplayer.py +++ b/openlp/core/ui/media/mediaplayer.py @@ -46,7 +46,7 @@ class MediaPlayer(object): self.parent = parent self.name = name self.available = self.check_available() - self.isActive = False + self.is_active = False self.can_background = False self.can_folder = False self.state = MediaState.Off diff --git a/openlp/core/ui/pluginform.py b/openlp/core/ui/pluginform.py index 238cb92c2..962393125 100644 --- a/openlp/core/ui/pluginform.py +++ b/openlp/core/ui/pluginform.py @@ -139,11 +139,11 @@ class PluginForm(QtGui.QDialog, Ui_PluginViewDialog): return if status == PluginStatus.Inactive: self.application.set_busy_cursor() - self.activePlugin.toggleStatus(PluginStatus.Active) + self.activePlugin.toggle_status(PluginStatus.Active) self.application.set_normal_cursor() self.activePlugin.app_startup() else: - self.activePlugin.toggleStatus(PluginStatus.Inactive) + self.activePlugin.toggle_status(PluginStatus.Inactive) status_text = translate('OpenLP.PluginForm', '%s (Inactive)') if self.activePlugin.status == PluginStatus.Active: status_text = translate('OpenLP.PluginForm', '%s (Active)') diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index f1f98423a..f0a421e1c 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -137,7 +137,7 @@ class MediaPlugin(Plugin): if players: new_players = [player for player in players if player != u'phonon'] new_players.insert(0, u'phonon') - self.media_controller.mediaPlayers[u'phonon'].isActive = True + self.media_controller.mediaPlayers[u'phonon'].is_active = True settings.setValue(u'players', u','.join(new_players)) self.settingsTab.load() settings.remove(u'use phonon') diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 024a278cb..0380225e8 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -105,7 +105,7 @@ class PresentationPlugin(Plugin): controller.kill() Plugin.finalise(self) - def createMediaManagerItem(self): + def create_media_manager_item(self): """ Create the Media Manager List """ @@ -114,17 +114,16 @@ class PresentationPlugin(Plugin): def registerControllers(self, controller): """ - Register each presentation controller (Impress, PPT etc) and - store for later use + Register each presentation controller (Impress, PPT etc) and store for later use """ self.controllers[controller.name] = controller - def checkPreConditions(self): + def check_pre_conditions(self): """ Check to see if we have any presentation software available If Not do not install the plugin. """ - log.debug(u'checkPreConditions') + log.debug(u'check_pre_conditions') controller_dir = os.path.join( AppLocation.get_directory(AppLocation.PluginsDir), u'presentations', u'lib') diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index b98180f20..a50539324 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -85,7 +85,10 @@ class SongsPlugin(Plugin): self.iconPath = u':/plugins/plugin_songs.png' self.icon = build_icon(self.iconPath) - def checkPreConditions(self): + def check_pre_conditions(self): + """ + Check the plugin can run. + """ return self.manager.session is not None def initialise(self): diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index 2bfc6b253..43554ac6b 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -68,7 +68,10 @@ class SongUsagePlugin(Plugin): self.inactiveIcon = build_icon(u':/songusage/song_usage_inactive.png') self.song_usage_active = False - def checkPreConditions(self): + def check_pre_conditions(self): + """ + Check the plugin can run. + """ return self.manager.session is not None def addToolsMenuItem(self, tools_menu): diff --git a/tests/functional/openlp_core_lib/test_pluginmanager.py b/tests/functional/openlp_core_lib/test_pluginmanager.py index 7b2a0ba31..3f871ebf2 100644 --- a/tests/functional/openlp_core_lib/test_pluginmanager.py +++ b/tests/functional/openlp_core_lib/test_pluginmanager.py @@ -41,9 +41,9 @@ class TestPluginManager(TestCase): # WHEN: We run hook_media_manager() plugin_manager.hook_media_manager() - # THEN: The createMediaManagerItem() method should have been called - assert mocked_plugin.createMediaManagerItem.call_count == 0, \ - u'The createMediaManagerItem() method should not have been called.' + # THEN: The create_media_manager_item() method should have been called + assert mocked_plugin.create_media_manager_item.call_count == 0, \ + u'The create_media_manager_item() method should not have been called.' def hook_media_manager_with_active_plugin_test(self): """ @@ -58,8 +58,8 @@ class TestPluginManager(TestCase): # WHEN: We run hook_media_manager() plugin_manager.hook_media_manager() - # THEN: The createMediaManagerItem() method should have been called - mocked_plugin.createMediaManagerItem.assert_called_with() + # THEN: The create_media_manager_item() method should have been called + mocked_plugin.create_media_manager_item.assert_called_with() def hook_settings_tabs_with_disabled_plugin_and_no_form_test(self): """ @@ -75,8 +75,8 @@ class TestPluginManager(TestCase): plugin_manager.hook_settings_tabs() # THEN: The createSettingsTab() method should have been called - assert mocked_plugin.createMediaManagerItem.call_count == 0, \ - u'The createMediaManagerItem() method should not have been called.' + assert mocked_plugin.create_media_manager_item.call_count == 0, \ + u'The create_media_manager_item() method should not have been called.' def hook_settings_tabs_with_disabled_plugin_and_mocked_form_test(self): """ @@ -96,7 +96,7 @@ class TestPluginManager(TestCase): # THEN: The createSettingsTab() method should not have been called, but the plugins lists should be the same assert mocked_plugin.createSettingsTab.call_count == 0, \ - u'The createMediaManagerItem() 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, u'The plugins on the settings form should be the same as the plugins in the plugin manager') @@ -116,9 +116,9 @@ class TestPluginManager(TestCase): # WHEN: We run hook_settings_tabs() plugin_manager.hook_settings_tabs() - # THEN: The createMediaManagerItem() 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.createSettingsTab.call_count == 1, \ - u'The createMediaManagerItem() 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, u'The plugins on the settings form should be the same as the plugins in the plugin manager') @@ -151,7 +151,7 @@ class TestPluginManager(TestCase): # WHEN: We run hook_import_menu() plugin_manager.hook_import_menu() - # THEN: The createMediaManagerItem() method should have been called + # THEN: The create_media_manager_item() method should have been called assert mocked_plugin.addImportMenuItem.call_count == 0, \ u'The addImportMenuItem() method should not have been called.' @@ -244,15 +244,15 @@ class TestPluginManager(TestCase): # GIVEN: A PluginManager instance and a list with a mocked up plugin whose status is set to Disabled mocked_plugin = MagicMock() mocked_plugin.status = PluginStatus.Disabled - mocked_plugin.isActive.return_value = False + mocked_plugin.is_active.return_value = False plugin_manager = PluginManager() plugin_manager.plugins = [mocked_plugin] # WHEN: We run initialise_plugins() plugin_manager.initialise_plugins() - # THEN: The isActive() method should have been called, and initialise() method should NOT have been called - mocked_plugin.isActive.assert_called_with() + # THEN: The is_active() method should have been called, and initialise() method should NOT have been called + mocked_plugin.is_active.assert_called_with() assert mocked_plugin.initialise.call_count == 0, u'The initialise() method should not have been called.' def initialise_plugins_with_active_plugin_test(self): @@ -262,15 +262,15 @@ class TestPluginManager(TestCase): # GIVEN: A PluginManager instance and a list with a mocked up plugin whose status is set to Active mocked_plugin = MagicMock() mocked_plugin.status = PluginStatus.Active - mocked_plugin.isActive.return_value = True + mocked_plugin.is_active.return_value = True plugin_manager = PluginManager() plugin_manager.plugins = [mocked_plugin] # WHEN: We run initialise_plugins() plugin_manager.initialise_plugins() - # THEN: The isActive() and initialise() methods should have been called - mocked_plugin.isActive.assert_called_with() + # THEN: The is_active() and initialise() methods should have been called + mocked_plugin.is_active.assert_called_with() mocked_plugin.initialise.assert_called_with() def finalise_plugins_with_disabled_plugin_test(self): @@ -280,15 +280,15 @@ class TestPluginManager(TestCase): # GIVEN: A PluginManager instance and a list with a mocked up plugin whose status is set to Disabled mocked_plugin = MagicMock() mocked_plugin.status = PluginStatus.Disabled - mocked_plugin.isActive.return_value = False + mocked_plugin.is_active.return_value = False plugin_manager = PluginManager() plugin_manager.plugins = [mocked_plugin] # WHEN: We run finalise_plugins() plugin_manager.finalise_plugins() - # THEN: The isActive() method should have been called, and initialise() method should NOT have been called - mocked_plugin.isActive.assert_called_with() + # THEN: The is_active() method should have been called, and initialise() method should NOT have been called + mocked_plugin.is_active.assert_called_with() assert mocked_plugin.finalise.call_count == 0, u'The finalise() method should not have been called.' def finalise_plugins_with_active_plugin_test(self): @@ -298,15 +298,15 @@ class TestPluginManager(TestCase): # GIVEN: A PluginManager instance and a list with a mocked up plugin whose status is set to Active mocked_plugin = MagicMock() mocked_plugin.status = PluginStatus.Active - mocked_plugin.isActive.return_value = True + mocked_plugin.is_active.return_value = True plugin_manager = PluginManager() plugin_manager.plugins = [mocked_plugin] # WHEN: We run finalise_plugins() plugin_manager.finalise_plugins() - # THEN: The isActive() and finalise() methods should have been called - mocked_plugin.isActive.assert_called_with() + # THEN: The is_active() and finalise() methods should have been called + mocked_plugin.is_active.assert_called_with() mocked_plugin.finalise.assert_called_with() def get_plugin_by_name_does_not_exist_test(self): @@ -322,7 +322,7 @@ class TestPluginManager(TestCase): # WHEN: We run finalise_plugins() result = plugin_manager.get_plugin_by_name('Missing Plugin') - # THEN: The isActive() and finalise() methods should have been called + # THEN: The is_active() and finalise() methods should have been called self.assertIsNone(result, u'The result for get_plugin_by_name should be None') def get_plugin_by_name_exists_test(self): @@ -338,7 +338,7 @@ class TestPluginManager(TestCase): # WHEN: We run finalise_plugins() result = plugin_manager.get_plugin_by_name('Mocked Plugin') - # THEN: The isActive() and finalise() methods should have been called + # THEN: The is_active() and finalise() methods should have been called self.assertEqual(result, mocked_plugin, u'The result for get_plugin_by_name should be the mocked plugin') def new_service_created_with_disabled_plugin_test(self): @@ -348,7 +348,7 @@ class TestPluginManager(TestCase): # GIVEN: A PluginManager instance and a list with a mocked up plugin whose status is set to Disabled mocked_plugin = MagicMock() mocked_plugin.status = PluginStatus.Disabled - mocked_plugin.isActive.return_value = False + mocked_plugin.is_active.return_value = False plugin_manager = PluginManager() plugin_manager.plugins = [mocked_plugin] @@ -356,7 +356,7 @@ class TestPluginManager(TestCase): plugin_manager.new_service_created() # THEN: The isActive() method should have been called, and initialise() method should NOT have been called - mocked_plugin.isActive.assert_called_with() + mocked_plugin.is_active.assert_called_with() assert mocked_plugin.new_service_created.call_count == 0,\ u'The new_service_created() method should not have been called.' @@ -367,13 +367,13 @@ class TestPluginManager(TestCase): # GIVEN: A PluginManager instance and a list with a mocked up plugin whose status is set to Active mocked_plugin = MagicMock() mocked_plugin.status = PluginStatus.Active - mocked_plugin.isActive.return_value = True + mocked_plugin.is_active.return_value = True plugin_manager = PluginManager() plugin_manager.plugins = [mocked_plugin] # WHEN: We run new_service_created() plugin_manager.new_service_created() - # THEN: The isActive() and finalise() methods should have been called - mocked_plugin.isActive.assert_called_with() + # THEN: The is_active() and finalise() methods should have been called + mocked_plugin.is_active.assert_called_with() mocked_plugin.new_service_created.assert_called_with()