Add unittest for domain validation of One2One fields
review852003
This commit is contained in:
1 parent
5243a43d73
commit
b1e50bfaf0
3 files changed
+47
-1
No files matched your search
@@ -57,6 +57,8 @@ def register():
|
||||
One2OneRelation,
|
||||
One2OneRequired,
|
||||
One2OneRequiredRelation,
|
||||
One2OneDomain,
|
||||
One2OneDomainRelation,
|
||||
One2Many,
|
||||
One2ManyTarget,
|
||||
One2ManyRequired,
|
||||
|
||||
+27
-1
@@ -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'
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in new issue
Block a user