diff --git a/frappe/tests/test_website.py b/frappe/tests/test_website.py index aeb208c5a2..4cd39f4dd5 100644 --- a/frappe/tests/test_website.py +++ b/frappe/tests/test_website.py @@ -317,6 +317,22 @@ class TestWebsite(FrappeTestCase): self.assertIn('', content) self.assertIn('', content) + def test_resolve_class(self): + from frappe.utils.jinja_globals import resolve_class + + context = frappe._dict(primary=True) + self.assertEqual(resolve_class("test"), "test") + self.assertEqual(resolve_class("test", "test-2"), "test test-2") + self.assertEqual(resolve_class("test", {"test-2": False, "test-3": True}), "test test-3") + self.assertEqual( + resolve_class(["test1", "test2", context.primary and "primary"]), "test1 test2 primary" + ) + + content = 'Test' + self.assertEqual( + frappe.render_template(content, context), 'Test' + ) + def set_home_page_hook(key, value): from frappe import hooks diff --git a/frappe/utils/jinja_globals.py b/frappe/utils/jinja_globals.py index 1265bd4d42..878d96e2bc 100644 --- a/frappe/utils/jinja_globals.py +++ b/frappe/utils/jinja_globals.py @@ -2,12 +2,14 @@ # License: MIT. See LICENSE -def resolve_class(classes): +def resolve_class(*classes): + if classes and len(classes) == 1: + classes = classes[0] + if classes is None: return "" - - if isinstance(classes, str): - return classes + if classes is False: + return "" if isinstance(classes, (list, tuple)): return " ".join(resolve_class(c) for c in classes).strip()