# 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())