summaryrefslogtreecommitdiff
path: root/tests/test_settings.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_settings.py')
-rw-r--r--tests/test_settings.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/test_settings.py b/tests/test_settings.py
new file mode 100644
index 0000000..49f00cc
--- /dev/null
+++ b/tests/test_settings.py
@@ -0,0 +1,65 @@
+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"))