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:
parent
9541bc6a27
commit
5fdba539a0
4 changed files with 129 additions and 8 deletions
|
|
@ -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()">
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"),
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue