lib: Give settigs a initialize() function
For setting a value only if it doesn't already exist Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
76338da8fe
commit
493c4e5c33
|
@ -34,13 +34,21 @@ def get_bool(setting, default=False):
|
|||
with Prepare(setting) as (section, key):
|
||||
return config.getboolean(section, key, fallback=default)
|
||||
|
||||
def __do_set(section, key, value):
|
||||
if not config.has_section(section):
|
||||
config.add_section(section)
|
||||
config.set(section, key, str(value))
|
||||
with data.DataFile(config_file, data.WRITE_TEXT) as f:
|
||||
config.write(f.file)
|
||||
|
||||
def set(setting, value):
|
||||
with Prepare(setting) as (section, key):
|
||||
if not config.has_section(section):
|
||||
config.add_section(section)
|
||||
config.set(section, key, str(value))
|
||||
with data.DataFile(config_file, data.WRITE_TEXT) as f:
|
||||
config.write(f.file)
|
||||
__do_set(section, key, value)
|
||||
|
||||
def initialize(setting, value):
|
||||
with Prepare(setting) as (section, key):
|
||||
if not config.has_option(section, key):
|
||||
__do_set(section, key, value)
|
||||
|
||||
def load():
|
||||
with data.DataFile(config_file, data.READ_TEXT) as f:
|
||||
|
|
|
@ -35,6 +35,13 @@ class TestSettings(unittest.TestCase):
|
|||
settings.set("test.bool", True)
|
||||
self.assertTrue(settings.get_bool("test.bool"))
|
||||
|
||||
def test_initialize(self):
|
||||
self.assertIsNone(settings.get("test.key"))
|
||||
settings.initialize("test.key", 1)
|
||||
self.assertEqual(settings.get_int("test.key"), 1)
|
||||
settings.initialize("test.key", 2)
|
||||
self.assertEqual(settings.get_int("test.key"), 1)
|
||||
|
||||
def test_load(self):
|
||||
settings.load()
|
||||
|
||||
|
|
Loading…
Reference in New Issue