From 199bd53c11136fe10765863304de9787127e0d4e Mon Sep 17 00:00:00 2001 From: Benoit Socias Date: Tue, 24 Sep 2024 14:16:40 +0200 Subject: [PATCH] [IMP] test_themes: ensure styles only define properties once This commit adds a test that makes sure that inline styles do not contain the same property several times. task-4206845 closes odoo/design-themes#933 Related: odoo/odoo#181194 Signed-off-by: Alice Gaudon (agau) --- test_themes/tests/test_new_page_templates.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test_themes/tests/test_new_page_templates.py b/test_themes/tests/test_new_page_templates.py index 04f0f9578..b0a31d8e5 100644 --- a/test_themes/tests/test_new_page_templates.py +++ b/test_themes/tests/test_new_page_templates.py @@ -190,6 +190,12 @@ class TestNewPageTemplates(TransactionCase): conflict.difference_update(white_list) if len(conflict) > 1: errors.append("Using %r, view %r contains conflicting classes: %r in %r (according to pattern %r)" % (theme_name, view.key, conflict, classes, conflicting_classes_re.pattern)) + for el in html_tree.xpath('//*[@style]'): + styles = el.attrib['style'].split(';') + non_empty_styles = filter(lambda style: style, styles) + property_names = list(map(lambda style: style.split(':')[0].strip(), non_empty_styles)) + if len(property_names) != len(set(property_names)): + errors.append("Using %r, view %r contains duplicate style properties: %r" % (theme_name, view.key, el.attrib['style'])) except Exception: _logger.error("Using %r, view %r cannot be rendered", theme_name, view.key) errors.append("Using %r, view %r cannot be rendered" % (theme_name, view.key))