summaryrefslogtreecommitdiff
path: root/odoo/addons/base/tests
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2020-02-14 11:22:15 +0100
committerMartin Trigaux <mat@odoo.com>2020-05-14 13:59:10 +0200
commitd9287caf9408bb4ff85ad734cbca08e44321e205 (patch)
tree0d3b7c5705e5172176a7d76bf9098e381190bf4b /odoo/addons/base/tests
parent56a8c9e4311d24c33b7ad08b8230e4be345a85b8 (diff)
[IMP] *: convert to private methods
render, render_template, load, activity_schedule_with_view, get_website_pages should all be private: It should not be possible to render an aribtrary template only with its name or id Still need to render some qweb views from js so the method render_template is kept public. This explains why the website editor still need read access on ir.ui.view as we want to allow any snippet to be rendered.
Diffstat (limited to 'odoo/addons/base/tests')
-rw-r--r--odoo/addons/base/tests/test_qweb.py50
-rw-r--r--odoo/addons/base/tests/test_reports.py2
-rw-r--r--odoo/addons/base/tests/test_views.py16
3 files changed, 34 insertions, 34 deletions
diff --git a/odoo/addons/base/tests/test_qweb.py b/odoo/addons/base/tests/test_qweb.py
index 780dc6a0cc5..00cf26d4031 100644
--- a/odoo/addons/base/tests/test_qweb.py
+++ b/odoo/addons/base/tests/test_qweb.py
@@ -25,7 +25,7 @@ class TestQWebTField(TransactionCase):
field = etree.Element('span', {'t-field': u'company.name'})
company = self.env['res.company'].create({'name': "My Test Company"})
- result = self.engine.render(field, {'company': company})
+ result = self.engine._render(field, {'company': company})
self.assertEqual(
etree.fromstring(result),
etree.fromstring(u'<span data-oe-model="res.company" data-oe-id="%d" '
@@ -41,7 +41,7 @@ class TestQWebTField(TransactionCase):
s = u"Testing «ταБЬℓσ»: 1<2 & 4+1>3, now 20% off!"
company = self.env['res.company'].create({'name': s})
- result = self.engine.render(field, {'company': company})
+ result = self.engine._render(field, {'company': company})
self.assertEqual(
etree.fromstring(result),
etree.fromstring(u'<span data-oe-model="res.company" data-oe-id="%d" '
@@ -56,13 +56,13 @@ class TestQWebTField(TransactionCase):
field = etree.Element('td', {'t-field': u'company.name'})
with self.assertRaisesRegex(QWebException, r'^RTE widgets do not work correctly'):
- self.engine.render(field, {'company': None})
+ self.engine._render(field, {'company': None})
def test_reject_t_tag(self):
field = etree.Element('t', {'t-field': u'company.name'})
with self.assertRaisesRegex(QWebException, r'^t-field can not be used on a t element'):
- self.engine.render(field, {'company': None})
+ self.engine._render(field, {'company': None})
def test_render_t_options(self):
view1 = self.env['ir.ui.view'].create({
@@ -72,7 +72,7 @@ class TestQWebTField(TransactionCase):
<t t-name="base.dummy"><root><span t-esc="5" t-options="{'widget': 'char'}" t-options-widget="'float'" t-options-precision="4"/></root></t>
"""
})
- text = etree.fromstring(view1.render()).find('span').text
+ text = etree.fromstring(view1._render()).find('span').text
self.assertEqual(text, u'5.0000')
def test_xss_breakout(self):
@@ -88,7 +88,7 @@ class TestQWebTField(TransactionCase):
</t>
"""
})
- rendered = view.render({'malicious': '1</script><script>alert("pwned")</script><script>'}).decode()
+ rendered = view._render({'malicious': '1</script><script>alert("pwned")</script><script>'}).decode()
self.assertIn('alert', rendered, "%r doesn't seem to be rendered" % rendered)
doc = etree.fromstring(rendered)
self.assertEqual(len(doc.xpath('//script')), 1)
@@ -119,7 +119,7 @@ class TestQWebNS(TransactionCase):
""" % expected_result
})
- self.assertEqual(etree.fromstring(view1.render()), etree.fromstring(expected_result))
+ self.assertEqual(etree.fromstring(view1._render()), etree.fromstring(expected_result))
def test_render_static_xml_with_namespace_2(self):
""" Test the rendering on a namespaced view with no static content. The resulting string should be untouched.
@@ -157,7 +157,7 @@ class TestQWebNS(TransactionCase):
""" % expected_result
})
- self.assertEqual(etree.fromstring(view1.render()), etree.fromstring(expected_result))
+ self.assertEqual(etree.fromstring(view1._render()), etree.fromstring(expected_result))
def test_render_static_xml_with_useless_distributed_namespace(self):
""" Test that redundant namespaces are stripped upon rendering.
@@ -190,7 +190,7 @@ class TestQWebNS(TransactionCase):
</root>
""")
- self.assertEqual(etree.fromstring(view1.render()), expected_result)
+ self.assertEqual(etree.fromstring(view1._render()), expected_result)
def test_render_static_xml_with_namespace_3(self):
expected_result = u"""
@@ -205,7 +205,7 @@ class TestQWebNS(TransactionCase):
""" % expected_result
})
- self.assertEqual(etree.fromstring(view1.render()), etree.fromstring(expected_result))
+ self.assertEqual(etree.fromstring(view1._render()), etree.fromstring(expected_result))
def test_render_dynamic_xml_with_namespace_t_esc(self):
""" Test that rendering a template containing a node having both an ns declaration and a t-esc attribute correctly
@@ -223,7 +223,7 @@ class TestQWebNS(TransactionCase):
expected_result = etree.fromstring(u"""<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2">test</Invoice>""")
- self.assertEqual(etree.fromstring(view1.render()), expected_result)
+ self.assertEqual(etree.fromstring(view1._render()), expected_result)
def test_render_dynamic_xml_with_namespace_t_esc_with_useless_distributed_namespace(self):
""" Test that rendering a template containing a node having both an ns declaration and a t-esc attribute correctly
@@ -247,7 +247,7 @@ class TestQWebNS(TransactionCase):
</Invoice>
""")
- self.assertEqual(etree.fromstring(view1.render()), expected_result)
+ self.assertEqual(etree.fromstring(view1._render()), expected_result)
def test_render_dynamic_xml_with_namespace_t_attf(self):
""" Test that rendering a template containing a node having both an ns declaration and a t-attf attribute correctly
@@ -287,7 +287,7 @@ class TestQWebNS(TransactionCase):
</root>
""")
- self.assertEqual(etree.fromstring(view1.render()), expected_result)
+ self.assertEqual(etree.fromstring(view1._render()), expected_result)
def test_render_dynamic_xml_with_namespace_t_attf_with_useless_distributed_namespace(self):
""" Test that rendering a template containing a node having both an ns declaration and a t-attf attribute correctly
@@ -329,7 +329,7 @@ class TestQWebNS(TransactionCase):
""")
- self.assertEqual(etree.fromstring(view1.render()), expected_result)
+ self.assertEqual(etree.fromstring(view1._render()), expected_result)
def test_render_dynamic_xml_with_namespace_2(self):
view1 = self.env['ir.ui.view'].create({
@@ -362,7 +362,7 @@ class TestQWebNS(TransactionCase):
</Invoice>
""")
- self.assertEqual(etree.fromstring(view1.render({'version_id': 1.0})), expected_result)
+ self.assertEqual(etree.fromstring(view1._render({'version_id': 1.0})), expected_result)
def test_render_static_xml_with_namespaced_attributes(self):
view1 = self.env['ir.ui.view'].create({
@@ -377,7 +377,7 @@ class TestQWebNS(TransactionCase):
expected_result = etree.fromstring(u"""<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd">abc</cfdi:Comprobante>""")
- self.assertEqual(etree.fromstring(view1.render()), expected_result)
+ self.assertEqual(etree.fromstring(view1._render()), expected_result)
def test_render_dynamic_xml_with_namespaced_attributes(self):
view1 = self.env['ir.ui.view'].create({
@@ -392,7 +392,7 @@ class TestQWebNS(TransactionCase):
expected_result = etree.fromstring("""<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd">abc</cfdi:Comprobante>""")
- self.assertEqual(etree.fromstring(view1.render()), expected_result)
+ self.assertEqual(etree.fromstring(view1._render()), expected_result)
def test_render_static_xml_with_t_call(self):
view1 = self.env['ir.ui.view'].create({
@@ -426,7 +426,7 @@ class TestQWebNS(TransactionCase):
"""
})
- result = view2.render()
+ result = view2._render()
result_etree = etree.fromstring(result)
# check that the root tag has all its xmlns
@@ -490,7 +490,7 @@ class TestQWebNS(TransactionCase):
""")
self.assertEqual(
- etree.fromstring(view1.with_context(check_view_ids=[view1.id, view2.id]).render()),
+ etree.fromstring(view1.with_context(check_view_ids=[view1.id, view2.id])._render()),
expected_result
)
@@ -516,7 +516,7 @@ class TestQWebNS(TransactionCase):
error_msg = e.args[0]
with self.assertRaises(QWebException, msg=error_msg):
- view1.render()
+ view1._render()
def test_render_t_call_propagates_t_lang(self):
current_lang = 'en_US'
@@ -554,7 +554,7 @@ class TestQWebNS(TransactionCase):
""" % other_lang
})
- rendered = view2.with_context(lang=current_lang).render().strip()
+ rendered = view2.with_context(lang=current_lang)._render().strip()
self.assertEqual(rendered, b'9/000/000*00')
@@ -622,7 +622,7 @@ class TestQWeb(TransactionCase):
result = doc.find('result[@id="{}"]'.format(template)).text
self.assertEqual(
- qweb.render(template, values=params, load=loader).strip(),
+ qweb._render(template, values=params, load=loader).strip(),
(result or u'').strip().encode('utf-8'),
template
)
@@ -646,7 +646,7 @@ class TestPageSplit(TransactionCase):
</t>
'''
})
- rendered = html.fromstring(self.env['ir.qweb'].render(t.id))
+ rendered = html.fromstring(self.env['ir.qweb']._render(t.id))
ref = E.div(
E.table(E.tr()),
E.div({'style': 'page-break-after: always'}),
@@ -669,7 +669,7 @@ class TestPageSplit(TransactionCase):
</t>
'''
})
- rendered = html.fromstring(self.env['ir.qweb'].render(t.id))
+ rendered = html.fromstring(self.env['ir.qweb']._render(t.id))
self.assertTreesEqual(
rendered,
E.div(
@@ -694,7 +694,7 @@ class TestPageSplit(TransactionCase):
</t>
'''
})
- rendered = html.fromstring(self.env['ir.qweb'].render(t.id))
+ rendered = html.fromstring(self.env['ir.qweb']._render(t.id))
self.assertTreesEqual(
rendered,
E.div(E.table(E.tr(), E.tr(), E.tr()))
diff --git a/odoo/addons/base/tests/test_reports.py b/odoo/addons/base/tests/test_reports.py
index bcbdb9bae0d..3ba9a669df6 100644
--- a/odoo/addons/base/tests/test_reports.py
+++ b/odoo/addons/base/tests/test_reports.py
@@ -28,6 +28,6 @@ class TestReports(odoo.tests.TransactionCase):
report_records = report_records[:1]
# Test report generation
- report.render_qweb_html(report_records.ids)
+ report._render_qweb_html(report_records.ids)
else:
continue
diff --git a/odoo/addons/base/tests/test_views.py b/odoo/addons/base/tests/test_views.py
index 02ac6af18c2..27a465b713a 100644
--- a/odoo/addons/base/tests/test_views.py
+++ b/odoo/addons/base/tests/test_views.py
@@ -2855,8 +2855,8 @@ class TestQWebRender(ViewCase):
})
# render view and child view with an id
- content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id]).render(view1.id)
- content2 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id]).render(view2.id)
+ content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id])._render(view1.id)
+ content2 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id])._render(view2.id)
self.assertEqual(content1, content2)
@@ -2866,14 +2866,14 @@ class TestQWebRender(ViewCase):
self.env.cr.execute("INSERT INTO ir_model_data(name, model, res_id, module)"
"VALUES ('dummy_ext', 'ir.ui.view', %s, 'base')" % view2.id)
- content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id]).render('base.dummy')
- content2 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id]).render('base.dummy_ext')
+ content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id])._render('base.dummy')
+ content2 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id])._render('base.dummy_ext')
self.assertEqual(content1, content2)
# render view and primary extension with an id
- content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id]).render(view1.id)
- content3 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id]).render(view3.id)
+ content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id])._render(view1.id)
+ content3 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id])._render(view3.id)
self.assertNotEqual(content1, content3)
@@ -2881,8 +2881,8 @@ class TestQWebRender(ViewCase):
self.env.cr.execute("INSERT INTO ir_model_data(name, model, res_id, module)"
"VALUES ('dummy_primary_ext', 'ir.ui.view', %s, 'base')" % view3.id)
- content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id]).render('base.dummy')
- content3 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id]).render('base.dummy_primary_ext')
+ content1 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id])._render('base.dummy')
+ content3 = self.env['ir.qweb'].with_context(check_view_ids=[view1.id, view2.id, view3.id])._render('base.dummy_primary_ext')
self.assertNotEqual(content1, content3)