changeset bfc11641bf45 in trytond:default
details: https://hg.tryton.org/trytond?cmd=changeset;node=bfc11641bf45
description:
Add test for multiselection field in EvalEnvironment
issue9144
review285001004
diffstat:
trytond/tests/modelstorage.py | 21 +++++++++-
trytond/tests/test_modelstorage.py | 82 +++++++++++++++++++++++++++++++++++++-
2 files changed, 101 insertions(+), 2 deletions(-)
diffs (139 lines):
diff -r 6a01dc6ad7ad -r bfc11641bf45 trytond/tests/modelstorage.py
--- a/trytond/tests/modelstorage.py Tue Mar 17 23:28:57 2020 +0100
+++ b/trytond/tests/modelstorage.py Tue Mar 17 23:29:23 2020 +0100
@@ -1,6 +1,6 @@
# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
-from trytond.model import ModelSQL, fields
+from trytond.model import ModelSQL, ModelStorage as ModelStorage_, fields
from trytond.pyson import Eval
from trytond.transaction import Transaction
from trytond.pool import Pool
@@ -72,6 +72,24 @@
'test.modelstorage.relation_domain.target', "Relation 2")
+class ModelStorageEvalEnvironment(ModelStorage_):
+ "Model for EvalEnvironment"
+ __name__ = 'test.modelstorage.eval_environment'
+ char = fields.Char("Name")
+ reference = fields.Reference(
+ "Reference", [
+ ('test.modelstorage.eval_environment', "Reference"),
+ ])
+ multiselection = fields.MultiSelection([
+ ('value1', "Value1"),
+ ('value2', "Value2"),
+ ], "MultiSelection")
+ many2one = fields.Many2One(
+ 'test.modelstorage.eval_environment', "Many2One")
+ one2many = fields.One2Many(
+ 'test.modelstorage.eval_environment', 'many2one', "One2Many")
+
+
def register(module):
Pool.register(
ModelStorage,
@@ -82,4 +100,5 @@
ModelStorageRelationDomainTarget,
ModelStorageRelationDomain2,
ModelStorageRelationDomain2Target,
+ ModelStorageEvalEnvironment,
module=module, type_='model')
diff -r 6a01dc6ad7ad -r bfc11641bf45 trytond/tests/test_modelstorage.py
--- a/trytond/tests/test_modelstorage.py Tue Mar 17 23:28:57 2020 +0100
+++ b/trytond/tests/test_modelstorage.py Tue Mar 17 23:29:23 2020 +0100
@@ -3,6 +3,7 @@
import unittest
+from trytond.model import EvalEnvironment
from trytond.model.exceptions import (
RequiredValidationError, DomainValidationError)
from trytond.pool import Pool
@@ -447,5 +448,84 @@
Model.delete([record])
+class EvalEnvironmentTestCase(unittest.TestCase):
+ "Test EvalEnvironment"
+
+ @classmethod
+ def setUpClass(cls):
+ activate_module('tests')
+
+ @with_transaction()
+ def test_char_field(self):
+ "Test eval simple field"
+ pool = Pool()
+ Model = pool.get('test.modelstorage.eval_environment')
+
+ record = Model(char="Test")
+ env = EvalEnvironment(record, Model)
+
+ self.assertEqual(env.get('char'), "Test")
+
+ @with_transaction()
+ def test_reference_field(self):
+ "Test eval reference field"
+ pool = Pool()
+ Model = pool.get('test.modelstorage.eval_environment')
+
+ record = Model(reference=Model(id=1))
+ env = EvalEnvironment(record, Model)
+
+ self.assertEqual(
+ env.get('reference'), 'test.modelstorage.eval_environment,1')
+
+ @with_transaction()
+ def test_many2one_field(self):
+ "Test eval many2one field"
+ pool = Pool()
+ Model = pool.get('test.modelstorage.eval_environment')
+
+ record = Model(many2one=Model(id=1))
+ env = EvalEnvironment(record, Model)
+
+ self.assertEqual(env.get('many2one'), 1)
+
+ @with_transaction()
+ def test_one2many_field(self):
+ "Test eval one2many field"
+ pool = Pool()
+ Model = pool.get('test.modelstorage.eval_environment')
+
+ record = Model(one2many=[Model(id=1), Model(id=2)])
+ env = EvalEnvironment(record, Model)
+
+ self.assertEqual(env.get('one2many'), [1, 2])
+
+ @with_transaction()
+ def test_multiselection_field(self):
+ "Test eval multiselection field"
+ pool = Pool()
+ Model = pool.get('test.modelstorage.eval_environment')
+
+ record = Model(multiselection=['value1', 'value2'])
+ env = EvalEnvironment(record, Model)
+
+ self.assertEqual(env.get('multiselection'), ['value1', 'value2'])
+
+ @with_transaction()
+ def test_parent_field(self):
+ "Test eval parent field"
+ pool = Pool()
+ Model = pool.get('test.modelstorage.eval_environment')
+
+ record = Model(many2one=Model(char="Test"))
+ env = EvalEnvironment(record, Model)
+
+ self.assertEqual(env.get('_parent_many2one').get('char'), "Test")
+
+
def suite():
- return unittest.TestLoader().loadTestsFromTestCase(ModelStorageTestCase)
+ suite_ = unittest.TestSuite()
+ loader = unittest.TestLoader()
+ suite_.addTests(loader.loadTestsFromTestCase(ModelStorageTestCase))
+ suite_.addTests(loader.loadTestsFromTestCase(EvalEnvironmentTestCase))
+ return suite_