Add unittest for domain validation of One2One fields

review852003
This commit is contained in:
Cédric Krier committed 2013-05-18 19:13:56 +02:00
1 parent 5243a43d73
commit b1e50bfaf0
3 files changed
+47 -1

No files matched your search

+2
View File
@@ -57,6 +57,8 @@ def register():
One2OneRelation,
One2OneRequired,
One2OneRequiredRelation,
One2OneDomain,
One2OneDomainRelation,
One2Many,
One2ManyTarget,
One2ManyRequired,
+27 -1
View File
@@ -18,7 +18,7 @@ __all__ = [
'DateTime', 'DateTimeDefault', 'DateTimeRequired', 'DateTimeFormat',
'Time', 'TimeDefault', 'TimeRequired', 'TimeFormat',
'One2One', 'One2OneTarget', 'One2OneRelation', 'One2OneRequired',
'One2OneRequiredRelation',
'One2OneRequiredRelation', 'One2OneDomain', 'One2OneDomainRelation',
'One2Many', 'One2ManyTarget',
'One2ManyRequired', 'One2ManyRequiredTarget',
'One2ManyReference', 'One2ManyReferenceTarget',
@@ -389,6 +389,32 @@ class One2OneRequiredRelation(ModelSQL):
]
class One2OneDomain(ModelSQL):
'One2One'
__name__ = 'test.one2one_domain'
name = fields.Char('Name', required=True)
one2one = fields.One2One('test.one2one_domain.relation', 'origin',
'target', string='One2One', help='Test one2one',
domain=[('name', '=', 'domain')])
class One2OneDomainRelation(ModelSQL):
'One2One Relation'
__name__ = 'test.one2one_domain.relation'
origin = fields.Many2One('test.one2one_domain', 'Origin')
target = fields.Many2One('test.one2one.target', 'Target')
@classmethod
def __setup__(cls):
super(One2OneDomainRelation, cls).__setup__()
cls._sql_constraints += [
('origin_unique', 'UNIQUE(origin)',
'Origin must be unique'),
('target_unique', 'UNIQUE(target)',
'Target must be unique'),
]
class One2Many(ModelSQL):
'One2Many Relation'
__name__ = 'test.one2many'
+18
View File
@@ -75,6 +75,7 @@ class FieldsTestCase(unittest.TestCase):
self.one2one = POOL.get('test.one2one')
self.one2one_target = POOL.get('test.one2one.target')
self.one2one_required = POOL.get('test.one2one_required')
self.one2one_domain = POOL.get('test.one2one_domain')
self.one2many = POOL.get('test.one2many')
self.one2many_target = POOL.get('test.one2many.target')
@@ -2372,6 +2373,23 @@ class FieldsTestCase(unittest.TestCase):
}])
self.assert_(one2one3)
target4, = self.one2one_target.create([{
'name': 'target4',
}])
self.assertRaises(Exception, self.one2one_domain.create, [{
'name': 'one2one4',
'one2one': target4.id,
}])
transaction.cursor.rollback()
target5, = self.one2one_target.create([{
'name': 'domain',
}])
one2one5, = self.one2one_domain.create([{
'name': 'one2one5',
'one2one': target5.id,
}])
transaction.cursor.rollback()
def test0120one2many(self):