summaryrefslogtreecommitdiff
path: root/addons/web/tests
diff options
context:
space:
mode:
authorLucas Perais (lpe) <lpe@odoo.com>2020-01-30 08:41:08 +0000
committerLucas Perais (lpe) <lpe@odoo.com>2020-01-30 12:22:23 +0000
commitcfac7b37752d6810272d2b9bb8909add4ca3aaa7 (patch)
tree2225397213796f2ba799336155061c3845841520 /addons/web/tests
parent1d872f24b153e3342886f0fd6d85b61341f63953 (diff)
[FIX] web: template inheritance from dotted name
A good practice is to always prefix the name of a template by the name of the module it is defined in. So in the case where a template ```xml <t t-name="module.template" /> ``` was inherited by another Before this commit, one should have written ```xml <t t-name="other" t-inherit="module.module.template" /> ``` After this commit, it becomes more natural, and one should only write ```xml <t t-name="other" t-inherit="module.template"/> ```
Diffstat (limited to 'addons/web/tests')
-rw-r--r--addons/web/tests/test_serving_base.py191
1 files changed, 191 insertions, 0 deletions
diff --git a/addons/web/tests/test_serving_base.py b/addons/web/tests/test_serving_base.py
index c6ac2083dbb..09c52df3471 100644
--- a/addons/web/tests/test_serving_base.py
+++ b/addons/web/tests/test_serving_base.py
@@ -716,6 +716,197 @@ class TestStaticInheritance(TestStaticInheritanceCommon):
self.assertXMLEqual(contents, expected)
+ def test_inherit_from_dotted_tname_1(self):
+ self.modules = [
+ ('module_1_file_1', None, 'module_1'),
+ ]
+ self.template_files = {
+ 'module_1_file_1': b"""
+ <templates id="template" xml:space="preserve">
+ <form t-name="module_1.template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <t t-name="template_1_2" t-inherit="template_1_1.dot" t-inherit-mode="primary">
+ <xpath expr="." position="replace">
+ <div overriden-attr="overriden">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </xpath>
+ </t>
+ </templates>
+ """,
+ }
+
+ contents = HomeStaticTemplateHelpers.get_qweb_templates(addons=self._get_module_names(), debug=True)
+ expected = b"""
+ <templates>
+ <form t-name="module_1.template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <div overriden-attr="overriden" t-name="template_1_2">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </templates>
+ """
+
+ self.assertXMLEqual(contents, expected)
+
+ def test_inherit_from_dotted_tname_2(self):
+ self.modules = [
+ ('module_1_file_1', None, 'module_1'),
+ ]
+ self.template_files = {
+ 'module_1_file_1': b"""
+ <templates id="template" xml:space="preserve">
+ <form t-name="template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <t t-name="template_1_2" t-inherit="template_1_1.dot" t-inherit-mode="primary">
+ <xpath expr="." position="replace">
+ <div overriden-attr="overriden">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </xpath>
+ </t>
+ </templates>
+ """,
+ }
+
+ contents = HomeStaticTemplateHelpers.get_qweb_templates(addons=self._get_module_names(), debug=True)
+ expected = b"""
+ <templates>
+ <form t-name="template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <div overriden-attr="overriden" t-name="template_1_2">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </templates>
+ """
+
+ self.assertXMLEqual(contents, expected)
+
+ def test_inherit_from_dotted_tname_2bis(self):
+ self.modules = [
+ ('module_1_file_1', None, 'module_1'),
+ ]
+ self.template_files = {
+ 'module_1_file_1': b"""
+ <templates id="template" xml:space="preserve">
+ <form t-name="template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <t t-name="template_1_2" t-inherit="module_1.template_1_1.dot" t-inherit-mode="primary">
+ <xpath expr="." position="replace">
+ <div overriden-attr="overriden">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </xpath>
+ </t>
+ </templates>
+ """,
+ }
+
+ contents = HomeStaticTemplateHelpers.get_qweb_templates(addons=self._get_module_names(), debug=True)
+ expected = b"""
+ <templates>
+ <form t-name="template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <div overriden-attr="overriden" t-name="template_1_2">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </templates>
+ """
+
+ self.assertXMLEqual(contents, expected)
+
+ def test_inherit_from_dotted_tname_2ter(self):
+ self.modules = [
+ ('module_1_file_1', None, 'module_1'),
+ ]
+ self.template_files = {
+ 'module_1_file_1': b"""
+ <templates id="template" xml:space="preserve">
+ <form t-name="module_1" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <t t-name="template_1_2" t-inherit="module_1" t-inherit-mode="primary">
+ <xpath expr="." position="replace">
+ <div overriden-attr="overriden">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </xpath>
+ </t>
+ </templates>
+ """,
+ }
+
+ contents = HomeStaticTemplateHelpers.get_qweb_templates(addons=self._get_module_names(), debug=True)
+ expected = b"""
+ <templates>
+ <form t-name="module_1" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <div overriden-attr="overriden" t-name="template_1_2">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </templates>
+ """
+
+ self.assertXMLEqual(contents, expected)
+
+ def test_inherit_from_dotted_tname_3(self):
+ self.modules = [
+ ('module_1_file_1', None, 'module_1'),
+ ('module_2_file_1', None, 'module_2'),
+ ]
+ self.template_files = {
+ 'module_1_file_1': b"""
+ <templates id="template" xml:space="preserve">
+ <form t-name="module_1.template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ </templates>
+ """,
+
+ 'module_2_file_1': b"""
+ <templates id="template" xml:space="preserve">
+ <t t-name="template_2_1" t-inherit="module_1.template_1_1.dot" t-inherit-mode="primary">
+ <xpath expr="." position="replace">
+ <div overriden-attr="overriden">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </xpath>
+ </t>
+ </templates>
+ """
+ }
+
+ contents = HomeStaticTemplateHelpers.get_qweb_templates(addons=self._get_module_names(), debug=True)
+ expected = b"""
+ <templates>
+ <form t-name="module_1.template_1_1.dot" random-attr="gloria">
+ <div>At first I was afraid</div>
+ </form>
+ <div overriden-attr="overriden" t-name="template_2_1">
+ And I grew strong
+ <p>And I learned how to get along</p>
+ </div>
+ </templates>
+ """
+
+ self.assertXMLEqual(contents, expected)
+
@tagged('-standard', 'static_templates_performance')
class TestStaticInheritancePerformance(TestStaticInheritanceCommon):