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_

Reply via email to