feat: per-theme Jinja env enables theme-level macro override
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -37,3 +37,20 @@ def test_discover_fails_fast_when_themes_dir_missing(tmp_path, monkeypatch):
|
||||
import pytest
|
||||
with pytest.raises(RuntimeError, match='themes directory missing'):
|
||||
core.discover_themes()
|
||||
|
||||
def test_env_for_theme_prefers_theme_dir_then_shared_root():
|
||||
from app import theme_pro
|
||||
env = theme_pro.env_for('industrial')
|
||||
paths = [str(p).replace('\\', '/') for p in env.loader.searchpath]
|
||||
assert paths[0].endswith('themes/industrial')
|
||||
assert paths[1].endswith('themes')
|
||||
# 共享宏库必须仍可解析(回落路径)
|
||||
assert env.get_template('_professional_components.html') is not None
|
||||
|
||||
def test_env_for_is_cached_per_theme():
|
||||
from app import theme_pro
|
||||
assert theme_pro.env_for('industrial') is theme_pro.env_for('industrial')
|
||||
|
||||
def test_env_for_pro_template_loads_unprefixed():
|
||||
from app import theme_pro
|
||||
assert theme_pro.env_for('industrial').get_template('pro.html') is not None
|
||||
|
||||
Reference in New Issue
Block a user