Initial import from Docker volume
This commit is contained in:
322
tests/test_field_one2one.py
Executable file
322
tests/test_field_one2one.py
Executable file
@@ -0,0 +1,322 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
import unittest
|
||||
|
||||
from trytond.model.exceptions import (
|
||||
DomainValidationError, RequiredValidationError, SQLConstraintError)
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import activate_module, with_transaction
|
||||
|
||||
|
||||
class FieldOne2OneTestCase(unittest.TestCase):
|
||||
"Test Field One2One"
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
activate_module('tests')
|
||||
|
||||
@with_transaction()
|
||||
def test_create_id(self):
|
||||
"Test create one2one with id"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{}])
|
||||
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target.id,
|
||||
}])
|
||||
|
||||
self.assertEqual(one2one.one2one, target)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_instance(self):
|
||||
"Test create one2one with instance"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{}])
|
||||
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
self.assertEqual(one2one.one2one, target)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_with_default(self):
|
||||
"Test create one2one with instance"
|
||||
pool = Pool()
|
||||
One2One = pool.get('test.one2one')
|
||||
|
||||
one2one, = One2One.create([{}])
|
||||
|
||||
self.assertEqual(one2one.one2one, None)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_duplicate(self):
|
||||
"Test create one2one duplicate"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{}])
|
||||
One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
with self.assertRaises(SQLConstraintError):
|
||||
One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
@with_transaction()
|
||||
def test_create_required_with_value(self):
|
||||
"Test create one2one required with value"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one_required')
|
||||
target, = Target.create([{}])
|
||||
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target.id,
|
||||
}])
|
||||
|
||||
self.assertEqual(one2one.one2one, target)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_required_without_value(self):
|
||||
"Test create one2one required without value"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one_required')
|
||||
target, = Target.create([{}])
|
||||
|
||||
with self.assertRaises(RequiredValidationError):
|
||||
One2One.create([{}])
|
||||
|
||||
@with_transaction()
|
||||
def test_create_with_domain_valid(self):
|
||||
"Test create one2one with domain valid"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one_domain')
|
||||
target, = Target.create([{
|
||||
'name': "domain",
|
||||
}])
|
||||
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target.id,
|
||||
}])
|
||||
|
||||
self.assertEqual(one2one.one2one, target)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_with_domain_invalid(self):
|
||||
"Test create one2one with domain invalid"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one_domain')
|
||||
target, = Target.create([{
|
||||
'name': "invalid domain",
|
||||
}])
|
||||
|
||||
with self.assertRaisesRegex(
|
||||
DomainValidationError,
|
||||
'The value "%s" for field "One2One" '
|
||||
'in record ".*" of "One2One"' % target.rec_name):
|
||||
One2One.create([{
|
||||
'one2one': target.id,
|
||||
}])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_equals(self):
|
||||
"Test search one2one equals"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{'name': "Target"}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', '=', "Target"),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [one2one])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_non_equals(self):
|
||||
"Test search one2one non equals"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{'name': "Target"}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', '!=', "Target"),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_equals_none(self):
|
||||
"Test search one2one equals None"
|
||||
pool = Pool()
|
||||
One2One = pool.get('test.one2one')
|
||||
one2one, = One2One.create([{}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', '=', None),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [one2one])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_non_equals_none(self):
|
||||
"Test search one2one non equals None"
|
||||
pool = Pool()
|
||||
One2One = pool.get('test.one2one')
|
||||
one2one, = One2One.create([{}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', '!=', None),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_in(self):
|
||||
"Test search one2one in"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{'name': "Target"}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', 'in', [target.id]),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [one2one])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_not_in(self):
|
||||
"Test search one2one not in"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{'name': "Target"}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', 'not in', [target.id]),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_in_none(self):
|
||||
"Test search one2one in [None]"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{'name': "Target"}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', 'in', [None]),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_not_in_none(self):
|
||||
"Test search one2one not in [None]"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{'name': "Target"}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one', 'not in', [None]),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [one2one])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_join(self):
|
||||
"Test search by one2one join"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{'name': "Target"}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target,
|
||||
}])
|
||||
|
||||
one2ones = One2One.search([
|
||||
('one2one.name', '=', "Target"),
|
||||
])
|
||||
|
||||
self.assertListEqual(one2ones, [one2one])
|
||||
|
||||
@with_transaction()
|
||||
def test_write_integer(self):
|
||||
"Test write one2one integer"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{}])
|
||||
one2one, = One2One.create([{}])
|
||||
|
||||
One2One.write([one2one], {
|
||||
'one2one': target.id,
|
||||
})
|
||||
|
||||
self.assertEqual(one2one.one2one, target)
|
||||
|
||||
@with_transaction()
|
||||
def test_write_none(self):
|
||||
"Test write one2one None"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{}])
|
||||
one2one, = One2One.create([{
|
||||
'one2one': target.id,
|
||||
}])
|
||||
|
||||
One2One.write([one2one], {
|
||||
'one2one': None,
|
||||
})
|
||||
|
||||
self.assertEqual(one2one.one2one, None)
|
||||
|
||||
@with_transaction()
|
||||
def test_write_duplicate(self):
|
||||
"Test write one2one duplicate"
|
||||
pool = Pool()
|
||||
Target = pool.get('test.one2one.target')
|
||||
One2One = pool.get('test.one2one')
|
||||
target, = Target.create([{}])
|
||||
one2one1, one2one2 = One2One.create([{
|
||||
'one2one': target,
|
||||
}, {}])
|
||||
|
||||
with self.assertRaises(SQLConstraintError):
|
||||
One2One.write([one2one2], {
|
||||
'one2one': target.id,
|
||||
})
|
||||
Reference in New Issue
Block a user