3
0
Fork 0

fix: prefer new setting name for buefy_css liburl

old setting name is still supported for now, with deprecation
warnings.

this change was necessary due to ambiguity of the buefy setting, when
buefy.css setting was set
This commit is contained in:
Lance Edgar 2026-02-07 09:27:50 -06:00
parent 9541bc6a27
commit 5fdba539a0
4 changed files with 129 additions and 8 deletions

View file

@ -113,7 +113,7 @@
</%def>
<%def name="buefy_styles()">
${h.stylesheet_link(h.get_liburl(request, 'buefy.css'))}
${h.stylesheet_link(h.get_liburl(request, 'buefy_css'))}
</%def>
<%def name="base_styles()">

View file

@ -188,6 +188,14 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
"""
config = request.wutta_config
if key == "buefy.css":
warnings.warn(
"libver key 'buefy.css' is deprecated; please use 'buefy_css' instead",
DeprecationWarning,
stacklevel=2,
)
key = "buefy_css"
# nb. we prefer a setting to be named like: wuttaweb.libver.vue
# but for back-compat this also can work: tailbone.libver.vue
# and for more back-compat this can work: wuttaweb.vue_version
@ -200,6 +208,17 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
if version:
return version
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get("wuttaweb.libver.buefy.css")
if version:
warnings.warn(
"config for wuttaweb.libver.buefy.css is deprecated; "
"please set wuttaweb.libver.buefy_css instead",
DeprecationWarning,
)
return version
# fallback to caller-specified prefix
if prefix != "wuttaweb":
version = config.get(f"{prefix}.libver.{key}")
@ -211,6 +230,17 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
)
return version
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get(f"{prefix}.libver.buefy.css")
if version:
warnings.warn(
f"config for {prefix}.libver.buefy.css is deprecated; "
"please set wuttaweb.libver.buefy_css instead",
DeprecationWarning,
)
return version
if key == "buefy":
if not default_only:
# nb. old/legacy setting
@ -225,7 +255,7 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
if not configured_only:
return "0.9.25"
elif key == "buefy.css":
elif key == "buefy_css":
# nb. this always returns something
return get_libver(
request, "buefy", default_only=default_only, configured_only=configured_only
@ -280,13 +310,13 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
return None
def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
def get_liburl(
request,
key,
configured_only=False,
default_only=False,
prefix="wuttaweb",
):
): # pylint: disable=too-many-return-statements,too-many-branches,too-many-statements
"""
Return the appropriate URL for the web resource library identified
by ``key``.
@ -321,7 +351,7 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
* ``vue``
* ``vue_resource``
* ``buefy``
* ``buefy.css``
* ``buefy_css``
* ``fontawesome``
Vue 3 + Oruga
@ -353,6 +383,14 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
"""
config = request.wutta_config
if key == "buefy.css":
warnings.warn(
"liburl key 'buefy.css' is deprecated; please use 'buefy_css' instead",
DeprecationWarning,
stacklevel=2,
)
key = "buefy_css"
if not default_only:
# nb. new/preferred setting
@ -360,6 +398,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
if url:
return url
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get("wuttaweb.liburl.buefy.css")
if version:
warnings.warn(
"config for wuttaweb.liburl.buefy.css is deprecated; "
"please set wuttaweb.liburl.buefy_css instead",
DeprecationWarning,
)
return version
# fallback to caller-specified prefix
url = config.get(f"{prefix}.liburl.{key}")
if url:
@ -370,6 +419,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
)
return url
# maybe try deprecated key for buefy.css
if key == "buefy_css":
version = config.get(f"{prefix}.liburl.buefy.css")
if version:
warnings.warn(
f"config for {prefix}.liburl.buefy.css is deprecated; "
"please set wuttaweb.liburl.buefy_css instead",
DeprecationWarning,
)
return version
if configured_only:
return None
@ -400,7 +460,7 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
return liburl + static.buefy_js.relpath
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.js"
if key == "buefy.css":
if key == "buefy_css":
if static and hasattr(static, "buefy_css"):
return liburl + static.buefy_css.relpath
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.css"

View file

@ -115,7 +115,7 @@ class AppInfoView(MasterView): # pylint: disable=abstract-method
("vue", "(Vue2) Vue"),
("vue_resource", "(Vue2) vue-resource"),
("buefy", "(Vue2) Buefy"),
("buefy.css", "(Vue2) Buefy CSS"),
("buefy_css", "(Vue2) Buefy CSS"),
("fontawesome", "(Vue2) FontAwesome"),
("bb_vue", "(Vue3) vue"),
("bb_oruga", "(Vue3) @oruga-ui/oruga-next"),

View file

@ -95,27 +95,73 @@ class TestGetLibVer(TestCase):
self.assertEqual(version, "0.9.25")
def test_buefy_css_default(self):
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.25")
version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.25")
def test_buefy_css_custom_old(self):
# nb. this uses same setting as buefy (js)
self.config.setdefault("wuttaweb.buefy_version", "0.9.29")
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.29")
def test_buefy_css_custom_new(self):
# nb. this uses same setting as buefy (js)
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
version = mod.get_libver(self.request, "buefy_css")
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css")
self.assertEqual(version, "0.9.29")
def test_buefy_css_configured_only(self):
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertIsNone(version)
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertIsNone(version)
# legacy prefix + deprecated setting name
self.config.setdefault("tailbone.libver.buefy.css", "0.9.23")
version = mod.get_libver(
self.request, "buefy_css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.23")
version = mod.get_libver(
self.request, "buefy.css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.23")
# legacy prefix + preferred setting name
self.config.setdefault("tailbone.libver.buefy_css", "0.9.22")
version = mod.get_libver(
self.request, "buefy_css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.22")
version = mod.get_libver(
self.request, "buefy.css", configured_only=True, prefix="tailbone"
)
self.assertEqual(version, "0.9.22")
# deprecated setting name
self.config.setdefault("wuttaweb.libver.buefy.css", "0.9.29")
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertEqual(version, "0.9.29")
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertEqual(version, "0.9.29")
# preferred setting name
self.config.setdefault("wuttaweb.libver.buefy_css", "0.9.27")
version = mod.get_libver(self.request, "buefy_css", configured_only=True)
self.assertEqual(version, "0.9.27")
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
self.assertEqual(version, "0.9.27")
def test_buefy_css_default_only(self):
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
version = mod.get_libver(self.request, "buefy_css", default_only=True)
self.assertEqual(version, "0.9.25")
version = mod.get_libver(self.request, "buefy.css", default_only=True)
self.assertEqual(version, "0.9.25")
@ -291,16 +337,31 @@ class TestGetLibUrl(TestCase):
self.assertEqual(url, "/wutta/fanstatic/buefy.js")
def test_buefy_css_default(self):
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
def test_buefy_css_custom(self):
self.config.setdefault("wuttaweb.liburl.buefy.css", "/lib/buefy.css")
# deprecated setting name
self.config.setdefault("wuttaweb.liburl.buefy.css", "/lib/deprecated-buefy.css")
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/lib/deprecated-buefy.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/lib/deprecated-buefy.css")
# preferred setting name
self.config.setdefault("wuttaweb.liburl.buefy_css", "/lib/buefy.css")
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/lib/buefy.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/lib/buefy.css")
def test_buefy_css_fanstatic(self):
self.setup_fanstatic()
url = mod.get_liburl(self.request, "buefy_css")
self.assertEqual(url, "/wutta/fanstatic/buefy.css")
url = mod.get_liburl(self.request, "buefy.css")
self.assertEqual(url, "/wutta/fanstatic/buefy.css")