import os from pathlib import Path import unittest import pygame os.environ["TEST_CONFIG_FILE"] = "/tmp/sliceitoff-settings-test" from sliceitoff.settings import settings class TestSettings(unittest.TestCase): def setUp(self): self.filename = Path("/tmp/sliceitoff-settings-test") if self.filename.is_file(): self.filename.unlink() def tearDown(self): if self.filename.is_file(): self.filename.unlink() def test_can_create(self): self.assertNotEqual(None, settings) def test_config_save_can_run(self): settings.save() if self.filename.is_file(): self.filename.unlink() def test_can_add_value(self): settings.put_value("testing", "666") self.assertEqual(settings.get_value("testing"), "666") def test_can_replace_value(self): settings.put_value("testing2", "777") settings.replace_value("testing2", "666") self.assertEqual(settings.get_value("testing2"), "666") def test_scores_can_be_saved(self): settings.put_value("testing3", "just_test") settings.save() with open(self.filename, "r", encoding="utf-8") as cfile: for line in cfile: if line == "testing3=just_test\n": break else: self.fail("Problem saving settings.") def test_validate_line(self): self.assertEqual( ("option", "value"), settings.validate_line("option=value\n")) self.assertEqual( ("option", "value"), settings.validate_line("option = value\n")) self.assertEqual( None, settings.validate_line("option = value = lol\n")) self.assertEqual( None, settings.validate_line("# option=value\n")) self.assertEqual( None, settings.validate_line("kamala lama\n"))