diff options
| author | Raphael Collet <rco@openerp.com> | 2016-02-23 14:54:34 +0100 |
|---|---|---|
| committer | Raphael Collet <rco@openerp.com> | 2016-03-21 13:46:44 +0100 |
| commit | 4ddc32313996c8cf6e8e6dffd2253aad8a144ccf (patch) | |
| tree | 32e6eaf4c7317b944c18d7758cb61f0636949a40 /addons/web_editor/tests/test_converter.py | |
| parent | eb04aa1e395d347c474181e90f8c8eded1d17ca3 (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.py | 62 |
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" ) |
