openlp/tests/functional/openlp_core_lib/test_settings.py

94 lines
3.0 KiB
Python
Raw Normal View History

2013-02-11 18:08:32 +00:00
"""
2013-02-19 18:27:17 +00:00
Package to test the openlp.core.lib.settings package.
2013-02-11 18:08:32 +00:00
"""
import os
from unittest import TestCase
2013-02-19 18:27:17 +00:00
from tempfile import mkstemp
2013-02-11 18:08:32 +00:00
from openlp.core.lib import Settings
2013-02-21 07:33:21 +00:00
from PyQt4 import QtGui
2013-02-11 18:08:32 +00:00
2013-02-12 16:42:09 +00:00
2013-02-11 18:08:32 +00:00
class TestSettings(TestCase):
2013-02-11 19:20:08 +00:00
def setUp(self):
"""
Create the UI
"""
2013-02-19 18:27:17 +00:00
fd, self.ini_file = mkstemp(u'.ini')
Settings().set_filename(self.ini_file)
2013-02-18 20:44:55 +00:00
self.application = QtGui.QApplication.instance()
2013-02-11 19:20:08 +00:00
def tearDown(self):
"""
Delete all the C++ objects at the end so that we don't have a segfault
"""
del self.application
2013-02-19 18:27:17 +00:00
os.unlink(self.ini_file)
os.unlink(Settings().fileName())
2013-02-11 19:20:08 +00:00
2013-02-11 18:08:32 +00:00
def settings_basic_test(self):
"""
2013-02-11 19:20:08 +00:00
Test the Settings creation and its default usage
2013-02-11 18:08:32 +00:00
"""
2013-02-11 19:20:08 +00:00
# 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
2013-02-14 21:31:17 +00:00
assert default_value is False, u'The default value should be False'
2013-02-11 19:20:08 +00:00
# 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
2013-02-18 20:44:55 +00:00
assert Settings().value(u'general/has run wizard') is True, u'The saved value should have been returned'
2013-02-11 19:20:08 +00:00
2013-02-11 19:48:38 +00:00
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
2013-02-18 20:44:55 +00:00
assert extend == u'very wide', u'The default value of "very wide" should be returned'
2013-02-11 19:48:38 +00:00
# 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
2013-02-18 20:44:55 +00:00
assert Settings().value(u'test/extend') == u'very short', u'The saved value should be returned'
2013-02-11 19:48:38 +00:00
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',
2013-02-12 16:42:09 +00:00
}
2013-02-11 19:48:38 +00:00
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
2013-02-18 20:44:55 +00:00
assert extend == u'very wide', u'The default value defined should be returned'
2013-02-11 19:48:38 +00:00
# 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
2013-02-18 20:44:55 +00:00
assert Settings().value(u'test/extend') == u'very short', u'The saved value should be returned'