forked from openlp/openlp
Start to clean up cut and paste over code. Simplify tests for application and Settings
bzr-revno: 2334
This commit is contained in:
commit
238a6c50d7
@ -131,6 +131,7 @@ def de_hump(name):
|
|||||||
from .openlpmixin import OpenLPMixin
|
from .openlpmixin import OpenLPMixin
|
||||||
from .registry import Registry
|
from .registry import Registry
|
||||||
from .registrymixin import RegistryMixin
|
from .registrymixin import RegistryMixin
|
||||||
|
from .registryproperties import RegistryProperties
|
||||||
from .uistrings import UiStrings
|
from .uistrings import UiStrings
|
||||||
from .settings import Settings
|
from .settings import Settings
|
||||||
from .applocation import AppLocation
|
from .applocation import AppLocation
|
||||||
|
117
openlp/core/common/registryproperties.py
Normal file
117
openlp/core/common/registryproperties.py
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2014 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
|
||||||
|
# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
|
||||||
|
# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
|
||||||
|
# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
|
||||||
|
# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
||||||
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
|
||||||
|
# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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 #
|
||||||
|
###############################################################################
|
||||||
|
"""
|
||||||
|
Provide Registry values for adding to classes
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
from openlp.core.common import Registry
|
||||||
|
|
||||||
|
|
||||||
|
class RegistryProperties(object):
|
||||||
|
"""
|
||||||
|
This adds registry components to classes to use at run time.
|
||||||
|
"""
|
||||||
|
|
||||||
|
@property
|
||||||
|
def application(self):
|
||||||
|
"""
|
||||||
|
Adds the openlp to the class dynamically.
|
||||||
|
Windows needs to access the application in a dynamic manner.
|
||||||
|
"""
|
||||||
|
if os.name == 'nt':
|
||||||
|
return Registry().get('application')
|
||||||
|
else:
|
||||||
|
if not hasattr(self, '_application') or not self._application:
|
||||||
|
self._application = Registry().get('application')
|
||||||
|
return self._application
|
||||||
|
|
||||||
|
@property
|
||||||
|
def plugin_manager(self):
|
||||||
|
"""
|
||||||
|
Adds the plugin manager to the class dynamically
|
||||||
|
"""
|
||||||
|
if not hasattr(self, '_plugin_manager') or not self._plugin_manager:
|
||||||
|
self._plugin_manager = Registry().get('plugin_manager')
|
||||||
|
return self._plugin_manager
|
||||||
|
|
||||||
|
@property
|
||||||
|
def image_manager(self):
|
||||||
|
"""
|
||||||
|
Adds the image manager to the class dynamically
|
||||||
|
"""
|
||||||
|
if not hasattr(self, '_image_manager') or not self._image_manager:
|
||||||
|
self._image_manager = Registry().get('image_manager')
|
||||||
|
return self._image_manager
|
||||||
|
|
||||||
|
@property
|
||||||
|
def media_controller(self):
|
||||||
|
"""
|
||||||
|
Adds the media controller to the class dynamically
|
||||||
|
"""
|
||||||
|
if not hasattr(self, '_media_controller') or not self._media_controller:
|
||||||
|
self._media_controller = Registry().get('media_controller')
|
||||||
|
return self._media_controller
|
||||||
|
|
||||||
|
@property
|
||||||
|
def service_manager(self):
|
||||||
|
"""
|
||||||
|
Adds the service manager to the class dynamically
|
||||||
|
"""
|
||||||
|
if not hasattr(self, '_service_manager') or not self._service_manager:
|
||||||
|
self._service_manager = Registry().get('service_manager')
|
||||||
|
return self._service_manager
|
||||||
|
|
||||||
|
@property
|
||||||
|
def preview_controller(self):
|
||||||
|
"""
|
||||||
|
Adds the preview controller to the class dynamically
|
||||||
|
"""
|
||||||
|
if not hasattr(self, '_preview_controller') or not self._preview_controller:
|
||||||
|
self._preview_controller = Registry().get('preview_controller')
|
||||||
|
return self._preview_controller
|
||||||
|
|
||||||
|
@property
|
||||||
|
def live_controller(self):
|
||||||
|
"""
|
||||||
|
Adds the live controller to the class dynamically
|
||||||
|
"""
|
||||||
|
if not hasattr(self, '_live_controller') or not self._live_controller:
|
||||||
|
self._live_controller = Registry().get('live_controller')
|
||||||
|
return self._live_controller
|
||||||
|
|
||||||
|
@property
|
||||||
|
def main_window(self):
|
||||||
|
"""
|
||||||
|
Adds the main window to the class dynamically
|
||||||
|
"""
|
||||||
|
if not hasattr(self, '_main_window') or not self._main_window:
|
||||||
|
self._main_window = Registry().get('main_window')
|
||||||
|
return self._main_window
|
||||||
|
|
@ -41,7 +41,7 @@ from datetime import datetime
|
|||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.common import Registry, AppLocation, Settings, check_directory_exists, translate
|
from openlp.core.common import Registry, RegistryProperties, AppLocation, Settings, check_directory_exists, translate
|
||||||
from openlp.core.lib import Renderer, OpenLPDockWidget, PluginManager, ImageManager, PluginStatus, ScreenList, \
|
from openlp.core.lib import Renderer, OpenLPDockWidget, PluginManager, ImageManager, PluginStatus, ScreenList, \
|
||||||
build_icon
|
build_icon
|
||||||
from openlp.core.lib.ui import UiStrings, create_action
|
from openlp.core.lib.ui import UiStrings, create_action
|
||||||
@ -106,8 +106,8 @@ class Ui_MainWindow(object):
|
|||||||
self.control_splitter.setObjectName('control_splitter')
|
self.control_splitter.setObjectName('control_splitter')
|
||||||
self.main_content_layout.addWidget(self.control_splitter)
|
self.main_content_layout.addWidget(self.control_splitter)
|
||||||
# Create slide controllers
|
# Create slide controllers
|
||||||
self.preview_controller = PreviewController(self)
|
PreviewController(self)
|
||||||
self.live_controller = LiveController(self)
|
LiveController(self)
|
||||||
preview_visible = Settings().value('user interface/preview panel')
|
preview_visible = Settings().value('user interface/preview panel')
|
||||||
live_visible = Settings().value('user interface/live panel')
|
live_visible = Settings().value('user interface/live panel')
|
||||||
panel_locked = Settings().value('user interface/lock panel')
|
panel_locked = Settings().value('user interface/lock panel')
|
||||||
@ -460,7 +460,7 @@ class Ui_MainWindow(object):
|
|||||||
self.mode_live_item.setStatusTip(translate('OpenLP.MainWindow', 'Set the view mode to Live.'))
|
self.mode_live_item.setStatusTip(translate('OpenLP.MainWindow', 'Set the view mode to Live.'))
|
||||||
|
|
||||||
|
|
||||||
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
class MainWindow(QtGui.QMainWindow, Ui_MainWindow, RegistryProperties):
|
||||||
"""
|
"""
|
||||||
The main window.
|
The main window.
|
||||||
"""
|
"""
|
||||||
@ -492,13 +492,13 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.copy_data = False
|
self.copy_data = False
|
||||||
Settings().set_up_default_values()
|
Settings().set_up_default_values()
|
||||||
self.about_form = AboutForm(self)
|
self.about_form = AboutForm(self)
|
||||||
self.media_controller = MediaController()
|
MediaController()
|
||||||
self.settings_form = SettingsForm(self)
|
self.settings_form = SettingsForm(self)
|
||||||
self.formatting_tag_form = FormattingTagForm(self)
|
self.formatting_tag_form = FormattingTagForm(self)
|
||||||
self.shortcut_form = ShortcutListForm(self)
|
self.shortcut_form = ShortcutListForm(self)
|
||||||
# Set up the path with plugins
|
# Set up the path with plugins
|
||||||
self.plugin_manager = PluginManager(self)
|
PluginManager(self)
|
||||||
self.image_manager = ImageManager()
|
ImageManager()
|
||||||
self.renderer = Renderer()
|
self.renderer = Renderer()
|
||||||
# Set up the interface
|
# Set up the interface
|
||||||
self.setupUi(self)
|
self.setupUi(self)
|
||||||
@ -1380,16 +1380,4 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
settings.remove('advanced/data path')
|
settings.remove('advanced/data path')
|
||||||
self.application.set_normal_cursor()
|
self.application.set_normal_cursor()
|
||||||
|
|
||||||
def _get_application(self):
|
|
||||||
"""
|
|
||||||
Adds the openlp to the class dynamically.
|
|
||||||
Windows needs to access the application in a dynamic manner.
|
|
||||||
"""
|
|
||||||
if os.name == 'nt':
|
|
||||||
return Registry().get('application')
|
|
||||||
else:
|
|
||||||
if not hasattr(self, '_application'):
|
|
||||||
self._application = Registry().get('application')
|
|
||||||
return self._application
|
|
||||||
|
|
||||||
application = property(_get_application)
|
|
||||||
|
@ -36,7 +36,8 @@ from collections import deque
|
|||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
from openlp.core.common import Registry, Settings, SlideLimits, UiStrings, translate, RegistryMixin, OpenLPMixin
|
from openlp.core.common import Registry, RegistryProperties, Settings, SlideLimits, UiStrings, translate, \
|
||||||
|
RegistryMixin, OpenLPMixin
|
||||||
from openlp.core.lib import OpenLPToolbar, ItemCapabilities, ServiceItem, ImageSource, ServiceItemAction, \
|
from openlp.core.lib import OpenLPToolbar, ItemCapabilities, ServiceItem, ImageSource, ServiceItemAction, \
|
||||||
ScreenList, build_icon, build_html
|
ScreenList, build_icon, build_html
|
||||||
from openlp.core.ui import HideMode, MainDisplay, Display, DisplayControllerType
|
from openlp.core.ui import HideMode, MainDisplay, Display, DisplayControllerType
|
||||||
@ -101,7 +102,7 @@ class DisplayController(QtGui.QWidget):
|
|||||||
Registry().execute('%s' % sender, [controller, args])
|
Registry().execute('%s' % sender, [controller, args])
|
||||||
|
|
||||||
|
|
||||||
class SlideController(DisplayController):
|
class SlideController(DisplayController, RegistryProperties):
|
||||||
"""
|
"""
|
||||||
SlideController is the slide controller widget. This widget is what the
|
SlideController is the slide controller widget. This widget is what the
|
||||||
user uses to control the displaying of verses/slides/etc on the screen.
|
user uses to control the displaying of verses/slides/etc on the screen.
|
||||||
@ -1338,66 +1339,6 @@ class SlideController(DisplayController):
|
|||||||
action = self.sender()
|
action = self.sender()
|
||||||
self.display.audio_player.go_to(action.data())
|
self.display.audio_player.go_to(action.data())
|
||||||
|
|
||||||
def _get_plugin_manager(self):
|
|
||||||
"""
|
|
||||||
Adds the plugin manager to the class dynamically
|
|
||||||
"""
|
|
||||||
if not hasattr(self, '_plugin_manager'):
|
|
||||||
self._plugin_manager = Registry().get('plugin_manager')
|
|
||||||
return self._plugin_manager
|
|
||||||
|
|
||||||
plugin_manager = property(_get_plugin_manager)
|
|
||||||
|
|
||||||
def _get_image_manager(self):
|
|
||||||
"""
|
|
||||||
Adds the image manager to the class dynamically
|
|
||||||
"""
|
|
||||||
if not hasattr(self, '_image_manager'):
|
|
||||||
self._image_manager = Registry().get('image_manager')
|
|
||||||
return self._image_manager
|
|
||||||
|
|
||||||
image_manager = property(_get_image_manager)
|
|
||||||
|
|
||||||
def _get_media_controller(self):
|
|
||||||
"""
|
|
||||||
Adds the media controller to the class dynamically
|
|
||||||
"""
|
|
||||||
if not hasattr(self, '_media_controller'):
|
|
||||||
self._media_controller = Registry().get('media_controller')
|
|
||||||
return self._media_controller
|
|
||||||
|
|
||||||
media_controller = property(_get_media_controller)
|
|
||||||
|
|
||||||
def _get_service_manager(self):
|
|
||||||
"""
|
|
||||||
Adds the service manager to the class dynamically
|
|
||||||
"""
|
|
||||||
if not hasattr(self, '_service_manager') or not self._service_manager:
|
|
||||||
self._service_manager = Registry().get('service_manager')
|
|
||||||
return self._service_manager
|
|
||||||
|
|
||||||
service_manager = property(_get_service_manager)
|
|
||||||
|
|
||||||
def _get_live_controller(self):
|
|
||||||
"""
|
|
||||||
Adds the live controller to the class dynamically
|
|
||||||
"""
|
|
||||||
if not hasattr(self, '_live_controller'):
|
|
||||||
self._live_controller = Registry().get('live_controller')
|
|
||||||
return self._live_controller
|
|
||||||
|
|
||||||
live_controller = property(_get_live_controller)
|
|
||||||
|
|
||||||
def _get_main_window(self):
|
|
||||||
"""
|
|
||||||
Adds the main window to the class dynamically
|
|
||||||
"""
|
|
||||||
if not hasattr(self, '_main_window'):
|
|
||||||
self._main_window = Registry().get('main_window')
|
|
||||||
return self._main_window
|
|
||||||
|
|
||||||
main_window = property(_get_main_window)
|
|
||||||
|
|
||||||
|
|
||||||
class PreviewController(RegistryMixin, OpenLPMixin, SlideController):
|
class PreviewController(RegistryMixin, OpenLPMixin, SlideController):
|
||||||
"""
|
"""
|
||||||
|
@ -0,0 +1,60 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2014 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
|
||||||
|
# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
|
||||||
|
# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
|
||||||
|
# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
|
||||||
|
# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
||||||
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
|
||||||
|
# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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 #
|
||||||
|
###############################################################################
|
||||||
|
"""
|
||||||
|
Test the registry properties
|
||||||
|
"""
|
||||||
|
from unittest import TestCase
|
||||||
|
|
||||||
|
from openlp.core.common import Registry, RegistryProperties
|
||||||
|
from tests.functional import MagicMock
|
||||||
|
|
||||||
|
|
||||||
|
class TestRegistryProperties(TestCase, RegistryProperties):
|
||||||
|
"""
|
||||||
|
Test the functions in the ThemeManager module
|
||||||
|
"""
|
||||||
|
def setUp(self):
|
||||||
|
"""
|
||||||
|
Create the UI
|
||||||
|
"""
|
||||||
|
Registry.create()
|
||||||
|
|
||||||
|
def no_application_test(self):
|
||||||
|
# GIVEN an Empty Registry
|
||||||
|
# WHEN there is no Application
|
||||||
|
# THEN the application should be none
|
||||||
|
self.assertEquals(self.application, None, 'The application value should be None')
|
||||||
|
|
||||||
|
def application_test(self):
|
||||||
|
# GIVEN an Empty Registry
|
||||||
|
application = MagicMock()
|
||||||
|
# WHEN the application is registered
|
||||||
|
Registry().register('application', application)
|
||||||
|
# THEN the application should be none
|
||||||
|
self.assertEquals(self.application, application, 'The application value should match')
|
56
tests/helpers/testmixin.py
Normal file
56
tests/helpers/testmixin.py
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2014 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
|
||||||
|
# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
|
||||||
|
# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
|
||||||
|
# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
|
||||||
|
# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
||||||
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
|
||||||
|
# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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 #
|
||||||
|
###############################################################################
|
||||||
|
"""
|
||||||
|
Mixin class with helpers
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
from tempfile import mkstemp
|
||||||
|
|
||||||
|
from PyQt4 import QtCore, QtGui
|
||||||
|
from openlp.core.common import Settings
|
||||||
|
|
||||||
|
|
||||||
|
class TestMixin(object):
|
||||||
|
|
||||||
|
def get_application(self):
|
||||||
|
old_app_instance = QtCore.QCoreApplication.instance()
|
||||||
|
if old_app_instance is None:
|
||||||
|
self.app = QtGui.QApplication([])
|
||||||
|
else:
|
||||||
|
self.app = old_app_instance
|
||||||
|
|
||||||
|
def build_settings(self):
|
||||||
|
Settings.setDefaultFormat(Settings.IniFormat)
|
||||||
|
fd, self.ini_file = mkstemp('.ini')
|
||||||
|
Settings().set_filename(self.ini_file)
|
||||||
|
|
||||||
|
def destroy_settings(self):
|
||||||
|
if hasattr(self, 'fd'):
|
||||||
|
os.close(self.fd)
|
||||||
|
os.unlink(Settings().fileName())
|
@ -1,3 +1,31 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2014 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
|
||||||
|
# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
|
||||||
|
# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
|
||||||
|
# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
|
||||||
|
# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
||||||
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
|
||||||
|
# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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.ui package.
|
Package to test the openlp.core.ui package.
|
||||||
"""
|
"""
|
||||||
@ -8,20 +36,17 @@ from PyQt4 import QtCore, QtGui, QtTest
|
|||||||
from openlp.core.common import Registry
|
from openlp.core.common import Registry
|
||||||
from openlp.core.ui import filerenameform
|
from openlp.core.ui import filerenameform
|
||||||
from tests.interfaces import MagicMock, patch
|
from tests.interfaces import MagicMock, patch
|
||||||
|
from tests.helpers.testmixin import TestMixin
|
||||||
|
|
||||||
|
|
||||||
class TestStartFileRenameForm(TestCase):
|
class TestStartFileRenameForm(TestCase, TestMixin):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
"""
|
"""
|
||||||
Create the UI
|
Create the UI
|
||||||
"""
|
"""
|
||||||
Registry.create()
|
Registry.create()
|
||||||
old_app_instance = QtCore.QCoreApplication.instance()
|
self.get_application()
|
||||||
if old_app_instance is None:
|
|
||||||
self.app = QtGui.QApplication([])
|
|
||||||
else:
|
|
||||||
self.app = old_app_instance
|
|
||||||
self.main_window = QtGui.QMainWindow()
|
self.main_window = QtGui.QMainWindow()
|
||||||
Registry().register('main_window', self.main_window)
|
Registry().register('main_window', self.main_window)
|
||||||
self.form = filerenameform.FileRenameForm()
|
self.form = filerenameform.FileRenameForm()
|
||||||
|
@ -1,3 +1,31 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2014 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
|
||||||
|
# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
|
||||||
|
# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
|
||||||
|
# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
|
||||||
|
# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
||||||
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
|
||||||
|
# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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.ui package.
|
Package to test the openlp.core.ui package.
|
||||||
"""
|
"""
|
||||||
|
@ -1,3 +1,31 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# OpenLP - Open Source Lyrics Projection #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# Copyright (c) 2008-2014 Raoul Snyman #
|
||||||
|
# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan #
|
||||||
|
# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, #
|
||||||
|
# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. #
|
||||||
|
# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, #
|
||||||
|
# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
|
||||||
|
# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, #
|
||||||
|
# Frode Woldsund, Martin Zibricky, Patrick Zimmermann #
|
||||||
|
# --------------------------------------------------------------------------- #
|
||||||
|
# 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.lib.settingsform package.
|
Package to test the openlp.core.lib.settingsform package.
|
||||||
"""
|
"""
|
||||||
|
@ -29,18 +29,15 @@
|
|||||||
"""
|
"""
|
||||||
Interface tests to test the themeManager class and related methods.
|
Interface tests to test the themeManager class and related methods.
|
||||||
"""
|
"""
|
||||||
import os
|
|
||||||
from unittest import TestCase
|
from unittest import TestCase
|
||||||
from tempfile import mkstemp
|
|
||||||
|
|
||||||
from PyQt4 import QtGui, QtCore
|
|
||||||
|
|
||||||
from openlp.core.common import Registry, Settings
|
from openlp.core.common import Registry, Settings
|
||||||
from openlp.core.ui import ThemeManager
|
from openlp.core.ui import ThemeManager
|
||||||
from tests.functional import patch, MagicMock
|
from tests.functional import patch, MagicMock
|
||||||
|
from tests.helpers.testmixin import TestMixin
|
||||||
|
|
||||||
|
|
||||||
class TestThemeManager(TestCase):
|
class TestThemeManager(TestCase, TestMixin):
|
||||||
"""
|
"""
|
||||||
Test the functions in the ThemeManager module
|
Test the functions in the ThemeManager module
|
||||||
"""
|
"""
|
||||||
@ -48,14 +45,8 @@ class TestThemeManager(TestCase):
|
|||||||
"""
|
"""
|
||||||
Create the UI
|
Create the UI
|
||||||
"""
|
"""
|
||||||
Settings.setDefaultFormat(Settings.IniFormat)
|
self.build_settings()
|
||||||
self.fd, self.ini_file = mkstemp('.ini')
|
self.get_application()
|
||||||
Settings().set_filename(self.ini_file)
|
|
||||||
old_app_instance = QtCore.QCoreApplication.instance()
|
|
||||||
if old_app_instance is None:
|
|
||||||
self.app = QtGui.QApplication([])
|
|
||||||
else:
|
|
||||||
self.app = old_app_instance
|
|
||||||
Registry.create()
|
Registry.create()
|
||||||
self.theme_manager = ThemeManager()
|
self.theme_manager = ThemeManager()
|
||||||
|
|
||||||
@ -63,8 +54,8 @@ class TestThemeManager(TestCase):
|
|||||||
"""
|
"""
|
||||||
Delete all the C++ objects at the end so that we don't have a segfault
|
Delete all the C++ objects at the end so that we don't have a segfault
|
||||||
"""
|
"""
|
||||||
os.close(self.fd)
|
|
||||||
os.unlink(Settings().fileName())
|
self.destroy_settings()
|
||||||
|
|
||||||
def initialise_test(self):
|
def initialise_test(self):
|
||||||
"""
|
"""
|
||||||
@ -75,7 +66,7 @@ class TestThemeManager(TestCase):
|
|||||||
self.theme_manager.load_first_time_themes = MagicMock()
|
self.theme_manager.load_first_time_themes = MagicMock()
|
||||||
Settings().setValue('themes/global theme', 'my_theme')
|
Settings().setValue('themes/global theme', 'my_theme')
|
||||||
|
|
||||||
# WHEN: the initialistion is run
|
# WHEN: the initialisation is run
|
||||||
self.theme_manager.bootstrap_initialise()
|
self.theme_manager.bootstrap_initialise()
|
||||||
|
|
||||||
# THEN:
|
# THEN:
|
||||||
|
Loading…
Reference in New Issue
Block a user