return False
return True
- def _check_mode(self, cr, uid, ids, context=None):
- for v in self.read(cr, uid, ids, ['inherit_id', 'mode'], context=context):
- if v['mode'] == 'extension' and not v['inherit_id']:
- raise Exception(
- _("A view extending nothing can not be an extension view"))
- return True
-
+ _sql_constraints = [
+ ('inheritance_mode',
+ "CHECK (mode != 'extension' OR inherit_id IS NOT NULL)",
+ "Invalid inheritance mode: if the mode is 'extension', the view must"
+ " extend an other view"),
+ ]
_constraints = [
(_check_xml, 'Invalid view definition', ['arch']),
- (_check_mode, "Invalid mode for inheritance", ['mode', 'inherit_id']),
]
def _auto_init(self, cr, context=None):
from lxml import etree as ET
from lxml.builder import E
+from psycopg2 import IntegrityError
+
from openerp.tests import common
+import openerp.tools
Field = E.field
}))
self.assertEqual(view2.mode, 'extension')
+ @openerp.tools.mute_logger('openerp.sql_db')
def testModeExplicit(self):
view = self.browse(self.create({
'inherit_id': None,
}))
self.assertEqual(view.mode, 'primary')
- with self.assertRaises(Exception):
+ with self.assertRaises(IntegrityError):
self.create({
'inherit_id': None,
'mode': 'extension',
'arch': '<qweb/>'
})
+ @openerp.tools.mute_logger('openerp.sql_db')
def testPurePrimaryToExtension(self):
"""
A primary view with inherit_id=None can't be converted to extension
'inherit_id': None,
'arch': '<qweb/>'
}))
- with self.assertRaises(Exception):
+ with self.assertRaises(IntegrityError):
view_pure_primary.write({'mode': 'extension'})
def testInheritPrimaryToExtension(self):