aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_theme.py
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-09 18:11:25 +0100
committerDanilo M. <danix@danix.xyz>2026-11-09 18:11:25 +0100
commitd1afaffd414fcb9328f17983540076b539456bd3 (patch)
treec85f83cf7e17f8c3013b67a6c70420f2aaa1f4b1 /tests/test_theme.py
parent0b303ba68c19e38a4487de59df0fdc93c6dd48cf (diff)
downloaddeck-it-d1afaffd414fcb9328f17983540076b539456bd3.tar.gz
deck-it-d1afaffd414fcb9328f17983540076b539456bd3.zip
feat: UDT palette theming
Diffstat (limited to 'tests/test_theme.py')
-rw-r--r--tests/test_theme.py34
1 files changed, 34 insertions, 0 deletions
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()