emmental/lib/test_settings.py

67 lines
2.2 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
from . import data
from . import settings
import configparser
import threading
import unittest
class TestSettings(unittest.TestCase):
def setUp(self):
self.cfg_file = data.DataFile(settings.config_file, data.READ_TEXT)
def tearDown(self):
settings.reset()
def test_init(self):
self.assertEqual(settings.config_file, "settings.cfg")
self.assertIsInstance(settings.config, configparser.ConfigParser)
self.assertIsInstance(settings.lock, type(threading.Lock()))
def test_set_get(self):
self.assertIsNone(settings.get("test.key"))
self.assertFalse(self.cfg_file.exists())
settings.set("test.key", 42)
self.assertTrue(self.cfg_file.exists())
self.assertEqual(settings.get("test.key"), "42")
self.assertIsNone(settings.get("test.nokey"))
self.assertEqual(settings.get("test.nokey", 1), 1)
self.assertEqual(settings.get("no.key", 1), 1)
self.assertEqual(settings.get_int("test.key"), 42)
self.assertEqual(settings.get_float("test.key"), 42.0)
self.assertFalse(settings.get_bool("test.bool"))
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()
settings.set("test.key1", 1)
settings.set("test.key2", 2)
settings.set("test.key3", True)
settings.set("test.key4", 4.2)
settings.config.clear()
settings.load()
self.assertEqual(settings.get_int("test.key1"), 1)
self.assertEqual(settings.get_int("test.key2"), 2)
self.assertEqual(settings.get_bool("test.key3"), True)
self.assertEqual(settings.get_float("test.key4"), 4.2)
def test_reset(self):
settings.set("test.key", 42)
self.assertTrue(self.cfg_file.exists())
settings.reset()
self.assertIsNone(settings.get("test.key"))
self.assertFalse(self.cfg_file.exists())