openlp-core team mailing list archive
-
openlp-core team
-
Mailing list archive
-
Message #19351
[Merge] lp:~trb143/openlp/settings_migration into lp:openlp
Tim Bentley has proposed merging lp:~trb143/openlp/settings_migration into lp:openlp.
Requested reviews:
Jonathan Corwin (j-corwin)
For more details, see:
https://code.launchpad.net/~trb143/openlp/settings_migration/+merge/148249
Add tests for Settings
Add SIP code so Settings can be used in tests
Run twice and both pass
http://ci.openlp.org/view/Specific%20Branch/job/OpenLP-Pull_and_Run_Functional_Tests/45/console
--
https://code.launchpad.net/~trb143/openlp/settings_migration/+merge/148249
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'tests/functional/openlp_core_lib/__init__.py'
--- tests/functional/openlp_core_lib/__init__.py 2012-12-06 22:19:17 +0000
+++ tests/functional/openlp_core_lib/__init__.py 2013-02-13 17:35:27 +0000
@@ -0,0 +1,8 @@
+import sip
+sip.setapi(u'QDate', 2)
+sip.setapi(u'QDateTime', 2)
+sip.setapi(u'QString', 2)
+sip.setapi(u'QTextStream', 2)
+sip.setapi(u'QTime', 2)
+sip.setapi(u'QUrl', 2)
+sip.setapi(u'QVariant', 2)
\ No newline at end of file
=== added file 'tests/functional/openlp_core_lib/test_settings.py'
--- tests/functional/openlp_core_lib/test_settings.py 1970-01-01 00:00:00 +0000
+++ tests/functional/openlp_core_lib/test_settings.py 2013-02-13 17:35:27 +0000
@@ -0,0 +1,97 @@
+"""
+ Package to test the openlp.core.lib package.
+"""
+import os
+
+from unittest import TestCase
+from openlp.core.lib import Settings
+
+from PyQt4 import QtGui, QtTest
+
+TESTPATH = os.path.abspath(os.path.join(os.path.dirname(__file__), u'..', u'..', u'resources'))
+
+
+class TestSettings(TestCase):
+
+ def setUp(self):
+ """
+ Create the UI
+ """
+ self.application = QtGui.QApplication([])
+ self.application.setOrganizationName(u'OpenLP-tests')
+ self.application.setOrganizationDomain(u'openlp.org')
+ Settings()
+
+ def tearDown(self):
+ """
+ Delete all the C++ objects at the end so that we don't have a segfault
+ """
+ del self.application
+ try:
+ os.remove(Settings().fileName())
+ except OSError:
+ pass
+
+ def settings_basic_test(self):
+ """
+ Test the Settings creation and its default usage
+ """
+ # GIVEN: A new Settings setup
+
+ # WHEN reading a setting for the first time
+ default_value = Settings().value(u'general/has run wizard')
+
+ # THEN the default value is returned
+ assert default_value is False, u'The default value defined has not been returned'
+
+ # WHEN a new value is saved into config
+ Settings().setValue(u'general/has run wizard', True)
+
+ # THEN the new value is returned when re-read
+ assert Settings().value(u'general/has run wizard') is True, u'The saved value has not been returned'
+
+ def settings_override_test(self):
+ """
+ Test the Settings creation and its override usage
+ """
+ # GIVEN: an override for the settings
+ screen_settings = {
+ u'test/extend': u'very wide',
+ }
+ Settings().extend_default_settings(screen_settings)
+
+ # WHEN reading a setting for the first time
+ extend = Settings().value(u'test/extend')
+
+ # THEN the default value is returned
+ assert extend == u'very wide', u'The default value defined is returned'
+
+ # WHEN a new value is saved into config
+ Settings().setValue(u'test/extend', u'very short')
+
+ # THEN the new value is returned when re-read
+ assert Settings().value(u'test/extend') == u'very short', u'The saved value is returned'
+
+ def settings_override_with_group_test(self):
+ """
+ Test the Settings creation and its override usage - with groups
+ """
+ # GIVEN: an override for the settings
+ screen_settings = {
+ u'test/extend': u'very wide',
+ }
+ Settings.extend_default_settings(screen_settings)
+
+ # WHEN reading a setting for the first time
+ settings = Settings()
+ settings.beginGroup(u'test')
+ extend = settings.value(u'extend')
+
+ # THEN the default value is returned
+ assert extend == u'very wide', u'The default value defined has not been returned'
+
+ # WHEN a new value is saved into config
+ Settings().setValue(u'test/extend', u'very short')
+
+ # THEN the new value is returned when re-read
+ assert Settings().value(u'test/extend') == u'very short', u'The saved value has not been returned'
Follow ups