summaryrefslogtreecommitdiff
path: root/addons/web_editor/tests/test_converter.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2016-02-23 14:54:34 +0100
committerRaphael Collet <rco@openerp.com>2016-03-21 13:46:44 +0100
commit4ddc32313996c8cf6e8e6dffd2253aad8a144ccf (patch)
tree32e6eaf4c7317b944c18d7758cb61f0636949a40 /addons/web_editor/tests/test_converter.py
parenteb04aa1e395d347c474181e90f8c8eded1d17ca3 (diff)
[FIX] base: fix and complete migration of base/ir
- add or fix decorators on methods - fix most compute methods (wrong dependencies) - revert changes in `eval_context` of `ir.actions` - various code simplifications and improvements - migrate methods that were not - ir_qweb: modify `QWebContext` to take an environment instead of `cr`, `uid`, `context` - ir_qweb: convert `AssetsBundle` to use new API `env` - ir_ui_view: use decorator `multi` on method `read_combined` - ir_ui_view: ensure that method `render` is never called with an xml_id - ir_ui_view: factor out part of the `ormcache` key of method `_read_template`
Diffstat (limited to 'addons/web_editor/tests/test_converter.py')
-rw-r--r--addons/web_editor/tests/test_converter.py62
1 files changed, 22 insertions, 40 deletions
diff --git a/addons/web_editor/tests/test_converter.py b/addons/web_editor/tests/test_converter.py
index 48a157c5d17..6772a15019a 100644
--- a/addons/web_editor/tests/test_converter.py
+++ b/addons/web_editor/tests/test_converter.py
@@ -6,7 +6,7 @@ from lxml import etree, html
from lxml.builder import E
from openerp.tests import common
-from openerp.addons.base.ir import ir_qweb
+from openerp.addons.base.ir.ir_qweb import QWebContext
from openerp.addons.web_editor.models.ir_qweb import html_to_text
@@ -116,32 +116,25 @@ class TestHTMLToText(unittest.TestCase):
class TestConvertBack(common.TransactionCase):
def setUp(self):
super(TestConvertBack, self).setUp()
+ self.env = self.env(context={'inherit_branding': True})
+
+ def qwebcontext(self, data):
+ return QWebContext(self.env, data)
def field_rountrip_result(self, field, value, expected):
model = 'web_editor.converter.test'
- Model = self.registry(model)
- id = Model.create(
- self.cr, self.uid, {
- field: value
- })
- [record] = Model.browse(self.cr, self.uid, [id])
+ record = self.env[model].create({field: value})
e = etree.Element('span')
field_value = 'record.%s' % field
e.set('t-field', field_value)
- rendered = self.registry('ir.qweb').render_tag_field(
- e, {'field': field_value}, '', ir_qweb.QWebContext(self.cr, self.uid, {
- 'record': record,
- }, context={'inherit_branding': True}))
- element = html.fromstring(
- rendered, parser=html.HTMLParser(encoding='utf-8'))
-
- converter = self.registry('ir.qweb').get_converter_for(
- element.get('data-oe-type'))
+ qwebcontext = self.qwebcontext({'record': record})
+ rendered = self.env['ir.qweb'].render_tag_field(e, {'field': field_value}, '', qwebcontext)
+ element = html.fromstring(rendered, parser=html.HTMLParser(encoding='utf-8'))
- value_back = converter.from_html(
- self.cr, self.uid, model, Model._fields[field], element)
+ converter = self.env['ir.qweb'].get_converter_for(element.get('data-oe-type'))
+ value_back = converter.from_html(model, record._fields[field], element)
if isinstance(expected, str):
expected = expected.decode('utf-8')
@@ -162,7 +155,6 @@ class TestConvertBack(common.TransactionCase):
def test_char(self):
self.field_roundtrip('char', "foo bar")
-
self.field_roundtrip('char', "ⒸⓄⓇⒼⒺ")
def test_selection(self):
@@ -199,45 +191,35 @@ class TestConvertBack(common.TransactionCase):
model = 'web_editor.converter.test'
field = 'many2one'
- Sub = self.registry('web_editor.converter.test.sub')
- sub_id = Sub.create(self.cr, self.uid, {'name': "Foo"})
- sub2_id = Sub.create(self.cr, self.uid, {'name': "Bar"})
-
- Model = self.registry(model)
- id = Model.create(self.cr, self.uid, {field: sub_id})
- [record] = Model.browse(self.cr, self.uid, [id])
+ subrec1 = self.env['web_editor.converter.test.sub'].create({'name': "Foo"})
+ subrec2 = self.env['web_editor.converter.test.sub'].create({'name': "Bar"})
+ record = self.env[model].create({field: subrec1.id})
e = etree.Element('span')
field_value = 'record.%s' % field
e.set('t-field', field_value)
- rendered = self.registry('ir.qweb').render_tag_field(
- e, {'field': field_value}, '', ir_qweb.QWebContext(self.cr, self.uid, {
- 'record': record,
- }, context={'inherit_branding': True}))
-
+ qwebcontext = self.qwebcontext({'record': record})
+ rendered = self.env['ir.qweb'].render_tag_field(e, {'field': field_value}, '', qwebcontext)
element = html.fromstring(rendered, parser=html.HTMLParser(encoding='utf-8'))
+
# emulate edition
- element.set('data-oe-many2one-id', str(sub2_id))
+ element.set('data-oe-many2one-id', str(subrec2.id))
element.text = "New content"
- converter = self.registry('ir.qweb').get_converter_for(
- element.get('data-oe-type'))
-
- value_back = converter.from_html(
- self.cr, self.uid, model, Model._fields[field], element)
+ converter = self.env['ir.qweb'].get_converter_for(element.get('data-oe-type'))
+ value_back = converter.from_html(model, record._fields[field], element)
self.assertIsNone(
value_back, "the m2o converter should return None to avoid spurious"
" or useless writes on the parent record")
-
self.assertEqual(
- Sub.browse(self.cr, self.uid, sub_id).name,
+ subrec1.name,
"Foo",
"element edition can't change directly the m2o record"
)
self.assertEqual(
- Model.browse(self.cr, self.uid, id).many2one.name,
+ record.many2one.name,
"Bar",
"element edition should have been change the m2o id"
)