aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures/accent.rasi1
-rw-r--r--tests/fixtures/palette.rasi20
-rw-r--r--tests/test_theme.py34
3 files changed, 55 insertions, 0 deletions
diff --git a/tests/fixtures/accent.rasi b/tests/fixtures/accent.rasi
new file mode 100644
index 0000000..082cf44
--- /dev/null
+++ b/tests/fixtures/accent.rasi
@@ -0,0 +1 @@
+* { accent: #b7bdf8; }
diff --git a/tests/fixtures/palette.rasi b/tests/fixtures/palette.rasi
new file mode 100644
index 0000000..2ee0c6b
--- /dev/null
+++ b/tests/fixtures/palette.rasi
@@ -0,0 +1,20 @@
+* {
+ base: #24273aff;
+ mantle: #1e2030ff;
+ crust: #181926ff;
+ surface0: #363a4fff;
+ surface1: #494d64ff;
+ surface2: #5b6078ff;
+ text: #cad3f5ff;
+ subtext0: #a5adcbff;
+ subtext1: #b8c0e0ff;
+ overlay0: #6e738dff;
+ red: #ed8796ff;
+ green: #a6da95ff;
+ yellow: #eed49fff;
+ teal: #8bd5caff;
+ blue: #8aadf4ff;
+ lavender: #b7bdf8ff;
+ peach: #f5a97fff;
+ mauve: #c6a0f6ff;
+}
diff --git a/tests/test_theme.py b/tests/test_theme.py
new file mode 100644
index 0000000..5f2f533
--- /dev/null
+++ b/tests/test_theme.py
@@ -0,0 +1,34 @@
+import sys
+from pathlib import Path
+
+sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
+
+import unittest
+
+import deckit.theme as theme
+
+PALETTE = """* {
+ base: #24273aff;
+ text: #cad3f5ff;
+ surface0: #363a4fff;
+}"""
+ACCENT = "* { accent: #b7bdf8; }"
+
+
+class Theme(unittest.TestCase):
+ def test_parses_palette(self):
+ self.assertEqual(theme.parse_palette(PALETTE),
+ {"base": "#24273aff", "text": "#cad3f5ff", "surface0": "#363a4fff"})
+
+ def test_parses_accent(self):
+ self.assertEqual(theme.parse_accent(ACCENT), "#b7bdf8")
+ self.assertIsNone(theme.parse_accent("nothing"))
+
+ def test_css_exposes_vars_and_falls_back(self):
+ out = theme.css({"base": "#24273a"}, None)
+ self.assertIn("--udt-base: #24273a", out)
+ self.assertIn("--udt-accent:", out) # fallback accent
+
+
+if __name__ == "__main__":
+ unittest.main()