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):
|
with Prepare(setting) as (section, key):
|
||||||
return config.getboolean(section, key, fallback=default)
|
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):
|
def set(setting, value):
|
||||||
with Prepare(setting) as (section, key):
|
with Prepare(setting) as (section, key):
|
||||||
if not config.has_section(section):
|
__do_set(section, key, value)
|
||||||
config.add_section(section)
|
|
||||||
config.set(section, key, str(value))
|
def initialize(setting, value):
|
||||||
with data.DataFile(config_file, data.WRITE_TEXT) as f:
|
with Prepare(setting) as (section, key):
|
||||||
config.write(f.file)
|
if not config.has_option(section, key):
|
||||||
|
__do_set(section, key, value)
|
||||||
|
|
||||||
def load():
|
def load():
|
||||||
with data.DataFile(config_file, data.READ_TEXT) as f:
|
with data.DataFile(config_file, data.READ_TEXT) as f:
|
||||||
|
|
|
@ -35,6 +35,13 @@ class TestSettings(unittest.TestCase):
|
||||||
settings.set("test.bool", True)
|
settings.set("test.bool", True)
|
||||||
self.assertTrue(settings.get_bool("test.bool"))
|
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):
|
def test_load(self):
|
||||||
settings.load()
|
settings.load()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue