Initial import from Docker volume
This commit is contained in:
349
tests/test_field_integer.py
Executable file
349
tests/test_field_integer.py
Executable file
@@ -0,0 +1,349 @@
|
||||
# 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 sql import Literal
|
||||
|
||||
from trytond.model.exceptions import (
|
||||
DomainValidationError, RequiredValidationError)
|
||||
from trytond.pool import Pool
|
||||
from trytond.tests.test_tryton import activate_module, with_transaction
|
||||
|
||||
|
||||
class FieldIntegerTestCase(unittest.TestCase):
|
||||
"Test Field Integer"
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
activate_module('tests')
|
||||
|
||||
@with_transaction()
|
||||
def test_create(self):
|
||||
"Test create integer"
|
||||
Integer = Pool().get('test.integer')
|
||||
|
||||
integer_1, integer_none = Integer.create([{
|
||||
'integer': 1,
|
||||
}, {
|
||||
'integer': None,
|
||||
}])
|
||||
|
||||
self.assertEqual(integer_1.integer, 1)
|
||||
self.assertEqual(integer_none.integer, None)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_without_default(self):
|
||||
"Test create integer without default"
|
||||
Integer = Pool().get('test.integer')
|
||||
|
||||
integer, = Integer.create([{}])
|
||||
|
||||
self.assertEqual(integer.integer, None)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_with_default(self):
|
||||
"Test create integer with default"
|
||||
Integer = Pool().get('test.integer_default')
|
||||
|
||||
integer, = Integer.create([{}])
|
||||
|
||||
self.assertEqual(integer.integer, 5)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_with_sql_value(self):
|
||||
"Test create integer with SQL value"
|
||||
Integer = Pool().get('test.integer_default')
|
||||
|
||||
integer, = Integer.create([{'integer': Literal(5)}])
|
||||
|
||||
self.assertEqual(integer.integer, 5)
|
||||
|
||||
@with_transaction()
|
||||
def test_set_sql_value(self):
|
||||
"Test cannot set SQL value"
|
||||
Integer = Pool().get('test.integer_default')
|
||||
|
||||
integer = Integer()
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
integer.integer = Literal(42)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_non_integer(self):
|
||||
"Test create integer with non integer"
|
||||
Integer = Pool().get('test.integer')
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
Integer.create([{
|
||||
'integer': 'non integer',
|
||||
}])
|
||||
|
||||
@with_transaction()
|
||||
def test_create_required_with_value(self):
|
||||
"Test create integer required with value"
|
||||
Integer = Pool().get('test.integer_required')
|
||||
|
||||
integer, = Integer.create([{
|
||||
'integer': 0,
|
||||
}])
|
||||
|
||||
self.assertEqual(integer.integer, 0)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_required_without_value(self):
|
||||
"Test create integer required without value"
|
||||
Integer = Pool().get('test.integer_required')
|
||||
|
||||
with self.assertRaises(RequiredValidationError):
|
||||
Integer.create([{}])
|
||||
|
||||
@with_transaction()
|
||||
def test_create_with_domain_valid(self):
|
||||
"Test create integer with domain valid"
|
||||
Integer = Pool().get('test.integer_domain')
|
||||
|
||||
integer, = Integer.create([{
|
||||
'integer': 100,
|
||||
}])
|
||||
|
||||
self.assertEqual(integer.integer, 100)
|
||||
|
||||
@with_transaction()
|
||||
def test_create_with_domain_invalid(self):
|
||||
"Test create integer with domain invalid"
|
||||
Integer = Pool().get('test.integer_domain')
|
||||
|
||||
with self.assertRaisesRegex(
|
||||
DomainValidationError,
|
||||
'The value "10" for field "Integer" '
|
||||
'in record ".*" of "Integer Domain"'):
|
||||
Integer.create([{
|
||||
'integer': 10,
|
||||
}])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_equals(self):
|
||||
"Test search integer equals"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_1 = Integer.search([
|
||||
('integer', '=', 1),
|
||||
])
|
||||
integers_0 = Integer.search([
|
||||
('integer', '=', 0),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_1, [integer])
|
||||
self.assertListEqual(integers_0, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_non_equals(self):
|
||||
"Test search integer non equals"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_1 = Integer.search([
|
||||
('integer', '!=', 1),
|
||||
])
|
||||
integers_0 = Integer.search([
|
||||
('integer', '!=', 0),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_1, [])
|
||||
self.assertListEqual(integers_0, [integer])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_in(self):
|
||||
"Test search integer in"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_1 = Integer.search([
|
||||
('integer', 'in', [1]),
|
||||
])
|
||||
integers_0 = Integer.search([
|
||||
('integer', 'in', [0]),
|
||||
])
|
||||
integers_empty = Integer.search([
|
||||
('integer', 'in', []),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_1, [integer])
|
||||
self.assertListEqual(integers_0, [])
|
||||
self.assertListEqual(integers_empty, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_not_in(self):
|
||||
"Test search integer not in"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_1 = Integer.search([
|
||||
('integer', 'not in', [1]),
|
||||
])
|
||||
integers_0 = Integer.search([
|
||||
('integer', 'not in', [0]),
|
||||
])
|
||||
integers_empty = Integer.search([
|
||||
('integer', 'not in', []),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_1, [])
|
||||
self.assertListEqual(integers_0, [integer])
|
||||
self.assertListEqual(integers_empty, [integer])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_in_multi(self):
|
||||
"Test search integer in multiple"
|
||||
Integer = Pool().get('test.integer')
|
||||
integers = Integer.create([{
|
||||
'integer': 1,
|
||||
}, {
|
||||
'integer': 0,
|
||||
}])
|
||||
|
||||
integers_in = Integer.search([
|
||||
('integer', 'in', [0, 1]),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_in, integers)
|
||||
|
||||
@with_transaction()
|
||||
def test_search_not_in_multi(self):
|
||||
"Test search integer not in multiple"
|
||||
Integer = Pool().get('test.integer')
|
||||
Integer.create([{
|
||||
'integer': 1,
|
||||
}, {
|
||||
'integer': 0,
|
||||
}])
|
||||
|
||||
integers = Integer.search([
|
||||
('integer', 'not in', [0, 1]),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_less(self):
|
||||
"Test search integer less than"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_5 = Integer.search([
|
||||
('integer', '<', 5),
|
||||
])
|
||||
integers__5 = Integer.search([
|
||||
('integer', '<', -5),
|
||||
])
|
||||
integers_1 = Integer.search([
|
||||
('integer', '<', 1),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_5, [integer])
|
||||
self.assertListEqual(integers__5, [])
|
||||
self.assertListEqual(integers_1, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_less_equals(self):
|
||||
"Test search integer less than or equals"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_5 = Integer.search([
|
||||
('integer', '<=', 5),
|
||||
])
|
||||
integers__5 = Integer.search([
|
||||
('integer', '<=', -5),
|
||||
])
|
||||
integers_1 = Integer.search([
|
||||
('integer', '<=', 1),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_5, [integer])
|
||||
self.assertListEqual(integers__5, [])
|
||||
self.assertListEqual(integers_1, [integer])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_greater(self):
|
||||
"Test search integer greater than"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_5 = Integer.search([
|
||||
('integer', '>', 5),
|
||||
])
|
||||
integers__5 = Integer.search([
|
||||
('integer', '>', -5),
|
||||
])
|
||||
integers_1 = Integer.search([
|
||||
('integer', '>', 1),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_5, [])
|
||||
self.assertListEqual(integers__5, [integer])
|
||||
self.assertListEqual(integers_1, [])
|
||||
|
||||
@with_transaction()
|
||||
def test_search_greater_equals(self):
|
||||
"Test search integer greater than or equals"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
integers_5 = Integer.search([
|
||||
('integer', '>=', 5),
|
||||
])
|
||||
integers__5 = Integer.search([
|
||||
('integer', '>=', -5),
|
||||
])
|
||||
integers_1 = Integer.search([
|
||||
('integer', '>=', 1),
|
||||
])
|
||||
|
||||
self.assertListEqual(integers_5, [])
|
||||
self.assertListEqual(integers__5, [integer])
|
||||
self.assertListEqual(integers_1, [integer])
|
||||
|
||||
@with_transaction()
|
||||
def test_write(self):
|
||||
"Test write integer"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
Integer.write([integer], {
|
||||
'integer': 0,
|
||||
})
|
||||
|
||||
self.assertEqual(integer.integer, 0)
|
||||
|
||||
@with_transaction()
|
||||
def test_write_non_integer(self):
|
||||
"Test write integer with non integer"
|
||||
Integer = Pool().get('test.integer')
|
||||
integer, = Integer.create([{
|
||||
'integer': 1,
|
||||
}])
|
||||
|
||||
with self.assertRaises(ValueError):
|
||||
Integer.write([integer], {
|
||||
'integer': 'non integer',
|
||||
})
|
||||
Reference in New Issue
Block a user