← Back to team overview

openlp-core team mailing list archive

[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