diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/fixtures/accent.rasi | 1 | ||||
| -rw-r--r-- | tests/fixtures/palette.rasi | 20 | ||||
| -rw-r--r-- | tests/test_theme.py | 34 |
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() |
