diff --git a/openerp/addons/base/tests/test_views.py b/openerp/addons/base/tests/test_views.py index 6203e4f001e..5d127580bd5 100644 --- a/openerp/addons/base/tests/test_views.py +++ b/openerp/addons/base/tests/test_views.py @@ -40,6 +40,19 @@ class test_views(common.TransactionCase): """, }) + def test_20_remove_unexisting_attribute(self): + Views = self.registry('ir.ui.view') + Views.create(self.cr, self.uid, { + 'name': 'Test View', + 'model': 'ir.ui.view', + 'inherit_id': self.browse_ref('base.view_view_tree').id, + 'arch': """ + + + + """, + }) + def _insert_view(self, **kw): """Insert view into database via a query to passtrough validation""" kw.pop('id', None) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index cf96c8d27bd..1ed1be7de6d 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -2153,8 +2153,8 @@ class BaseModel(object): attribute = (child.get('name'), child.text and child.text.encode('utf8') or None) if attribute[1]: node.set(attribute[0], attribute[1]) - else: - del(node.attrib[attribute[0]]) + elif attribute[0] in node.attrib: + del node.attrib[attribute[0]] else: sib = node.getnext() for child in spec: