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>
|
||||||
|
|
||||||
<%def name="buefy_styles()">
|
<%def name="buefy_styles()">
|
||||||
${h.stylesheet_link(h.get_liburl(request, 'buefy.css'))}
|
${h.stylesheet_link(h.get_liburl(request, 'buefy_css'))}
|
||||||
</%def>
|
</%def>
|
||||||
|
|
||||||
<%def name="base_styles()">
|
<%def name="base_styles()">
|
||||||
|
|
|
||||||
|
|
@ -188,6 +188,14 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
|
||||||
"""
|
"""
|
||||||
config = request.wutta_config
|
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
|
# nb. we prefer a setting to be named like: wuttaweb.libver.vue
|
||||||
# but for back-compat this also can work: tailbone.libver.vue
|
# but for back-compat this also can work: tailbone.libver.vue
|
||||||
# and for more back-compat this can work: wuttaweb.vue_version
|
# 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:
|
if version:
|
||||||
return 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
|
# fallback to caller-specified prefix
|
||||||
if prefix != "wuttaweb":
|
if prefix != "wuttaweb":
|
||||||
version = config.get(f"{prefix}.libver.{key}")
|
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
|
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 key == "buefy":
|
||||||
if not default_only:
|
if not default_only:
|
||||||
# nb. old/legacy setting
|
# nb. old/legacy setting
|
||||||
|
|
@ -225,7 +255,7 @@ def get_libver( # pylint: disable=too-many-return-statements,too-many-branches
|
||||||
if not configured_only:
|
if not configured_only:
|
||||||
return "0.9.25"
|
return "0.9.25"
|
||||||
|
|
||||||
elif key == "buefy.css":
|
elif key == "buefy_css":
|
||||||
# nb. this always returns something
|
# nb. this always returns something
|
||||||
return get_libver(
|
return get_libver(
|
||||||
request, "buefy", default_only=default_only, configured_only=configured_only
|
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
|
return None
|
||||||
|
|
||||||
|
|
||||||
def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
|
def get_liburl(
|
||||||
request,
|
request,
|
||||||
key,
|
key,
|
||||||
configured_only=False,
|
configured_only=False,
|
||||||
default_only=False,
|
default_only=False,
|
||||||
prefix="wuttaweb",
|
prefix="wuttaweb",
|
||||||
):
|
): # pylint: disable=too-many-return-statements,too-many-branches,too-many-statements
|
||||||
"""
|
"""
|
||||||
Return the appropriate URL for the web resource library identified
|
Return the appropriate URL for the web resource library identified
|
||||||
by ``key``.
|
by ``key``.
|
||||||
|
|
@ -321,7 +351,7 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
|
||||||
* ``vue``
|
* ``vue``
|
||||||
* ``vue_resource``
|
* ``vue_resource``
|
||||||
* ``buefy``
|
* ``buefy``
|
||||||
* ``buefy.css``
|
* ``buefy_css``
|
||||||
* ``fontawesome``
|
* ``fontawesome``
|
||||||
|
|
||||||
Vue 3 + Oruga
|
Vue 3 + Oruga
|
||||||
|
|
@ -353,6 +383,14 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
|
||||||
"""
|
"""
|
||||||
config = request.wutta_config
|
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:
|
if not default_only:
|
||||||
|
|
||||||
# nb. new/preferred setting
|
# nb. new/preferred setting
|
||||||
|
|
@ -360,6 +398,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
|
||||||
if url:
|
if url:
|
||||||
return 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
|
# fallback to caller-specified prefix
|
||||||
url = config.get(f"{prefix}.liburl.{key}")
|
url = config.get(f"{prefix}.liburl.{key}")
|
||||||
if url:
|
if url:
|
||||||
|
|
@ -370,6 +419,17 @@ def get_liburl( # pylint: disable=too-many-return-statements,too-many-branches
|
||||||
)
|
)
|
||||||
return url
|
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:
|
if configured_only:
|
||||||
return None
|
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 liburl + static.buefy_js.relpath
|
||||||
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.js"
|
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"):
|
if static and hasattr(static, "buefy_css"):
|
||||||
return liburl + static.buefy_css.relpath
|
return liburl + static.buefy_css.relpath
|
||||||
return f"https://unpkg.com/buefy@{version}/dist/buefy.min.css"
|
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", "(Vue2) Vue"),
|
||||||
("vue_resource", "(Vue2) vue-resource"),
|
("vue_resource", "(Vue2) vue-resource"),
|
||||||
("buefy", "(Vue2) Buefy"),
|
("buefy", "(Vue2) Buefy"),
|
||||||
("buefy.css", "(Vue2) Buefy CSS"),
|
("buefy_css", "(Vue2) Buefy CSS"),
|
||||||
("fontawesome", "(Vue2) FontAwesome"),
|
("fontawesome", "(Vue2) FontAwesome"),
|
||||||
("bb_vue", "(Vue3) vue"),
|
("bb_vue", "(Vue3) vue"),
|
||||||
("bb_oruga", "(Vue3) @oruga-ui/oruga-next"),
|
("bb_oruga", "(Vue3) @oruga-ui/oruga-next"),
|
||||||
|
|
|
||||||
|
|
@ -95,27 +95,73 @@ class TestGetLibVer(TestCase):
|
||||||
self.assertEqual(version, "0.9.25")
|
self.assertEqual(version, "0.9.25")
|
||||||
|
|
||||||
def test_buefy_css_default(self):
|
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")
|
version = mod.get_libver(self.request, "buefy.css")
|
||||||
self.assertEqual(version, "0.9.25")
|
self.assertEqual(version, "0.9.25")
|
||||||
|
|
||||||
def test_buefy_css_custom_old(self):
|
def test_buefy_css_custom_old(self):
|
||||||
# nb. this uses same setting as buefy (js)
|
# nb. this uses same setting as buefy (js)
|
||||||
self.config.setdefault("wuttaweb.buefy_version", "0.9.29")
|
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")
|
version = mod.get_libver(self.request, "buefy.css")
|
||||||
self.assertEqual(version, "0.9.29")
|
self.assertEqual(version, "0.9.29")
|
||||||
|
|
||||||
def test_buefy_css_custom_new(self):
|
def test_buefy_css_custom_new(self):
|
||||||
# nb. this uses same setting as buefy (js)
|
# nb. this uses same setting as buefy (js)
|
||||||
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
|
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")
|
version = mod.get_libver(self.request, "buefy.css")
|
||||||
self.assertEqual(version, "0.9.29")
|
self.assertEqual(version, "0.9.29")
|
||||||
|
|
||||||
def test_buefy_css_configured_only(self):
|
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)
|
version = mod.get_libver(self.request, "buefy.css", configured_only=True)
|
||||||
self.assertIsNone(version)
|
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):
|
def test_buefy_css_default_only(self):
|
||||||
self.config.setdefault("wuttaweb.libver.buefy", "0.9.29")
|
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)
|
version = mod.get_libver(self.request, "buefy.css", default_only=True)
|
||||||
self.assertEqual(version, "0.9.25")
|
self.assertEqual(version, "0.9.25")
|
||||||
|
|
||||||
|
|
@ -291,16 +337,31 @@ class TestGetLibUrl(TestCase):
|
||||||
self.assertEqual(url, "/wutta/fanstatic/buefy.js")
|
self.assertEqual(url, "/wutta/fanstatic/buefy.js")
|
||||||
|
|
||||||
def test_buefy_css_default(self):
|
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")
|
url = mod.get_liburl(self.request, "buefy.css")
|
||||||
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
|
self.assertEqual(url, "https://unpkg.com/buefy@0.9.25/dist/buefy.min.css")
|
||||||
|
|
||||||
def test_buefy_css_custom(self):
|
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")
|
url = mod.get_liburl(self.request, "buefy.css")
|
||||||
self.assertEqual(url, "/lib/buefy.css")
|
self.assertEqual(url, "/lib/buefy.css")
|
||||||
|
|
||||||
def test_buefy_css_fanstatic(self):
|
def test_buefy_css_fanstatic(self):
|
||||||
self.setup_fanstatic()
|
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")
|
url = mod.get_liburl(self.request, "buefy.css")
|
||||||
self.assertEqual(url, "/wutta/fanstatic/buefy.css")
|
self.assertEqual(url, "/wutta/fanstatic/buefy.css")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue