mirror of
https://github.com/retspen/webvirtcloud
synced 2026-11-08 19:26:48 +00:00
A theme change compiled Bootswatch with libsass (34 MB, upstream deprecated) into two tracked files, which updates, rollbacks and new Docker containers then reset. The 27 themes now ship as static/css/themes/<theme>.min.css, built by "manage.py build_themes"; the Settings page only saves the theme name and every page links that file (zephyr when no settings are in context, as on the 500 page). libsass moves to dev/requirements.txt; a test checks that each shipped file is its theme compiled from dev/scss. The "Theme SASS Path" setting is removed, and the theme default "flaty", a typo that never applied, becomes zephyr, the theme those installs showed. The update and rollback steps restore an older version's rewritten theme files only where they are modified.
17 lines
855 B
Python
17 lines
855 B
Python
"""static/css/themes holds every theme in dev/scss/wvc-themes, compiled from
|
|
these sources with the pinned libsass (manage.py build_themes)."""
|
|
|
|
from django.test import SimpleTestCase
|
|
|
|
from appsettings.management.commands.build_themes import SCSS, compile_theme
|
|
from appsettings.views import THEMES_DIR
|
|
|
|
|
|
class ThemeTests(SimpleTestCase):
|
|
def test_the_shipped_themes_are_compiled_from_these_sources(self):
|
|
themes = sorted(p.name for p in (SCSS / "wvc-themes").iterdir() if p.is_dir())
|
|
self.assertIn("zephyr", themes)
|
|
self.assertEqual(sorted(p.name for p in THEMES_DIR.iterdir()), [f"{theme}.min.css" for theme in themes])
|
|
for theme in themes:
|
|
with self.subTest(theme=theme):
|
|
self.assertEqual((THEMES_DIR / f"{theme}.min.css").read_text(), compile_theme(theme), "run manage.py build_themes")
|