From c8901da5c9e0f2287105af15f98207f693651b1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Sat, 7 May 2016 16:26:02 +0200 Subject: [PATCH] [IMP] mis_builder: tests for mis_safe_eval --- mis_builder/tests/test_mis_safe_eval.py | 26 +++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 mis_builder/tests/test_mis_safe_eval.py diff --git a/mis_builder/tests/test_mis_safe_eval.py b/mis_builder/tests/test_mis_safe_eval.py new file mode 100644 index 00000000..7ede0641 --- /dev/null +++ b/mis_builder/tests/test_mis_safe_eval.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# © 2016 ACSONE SA/NV () +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import openerp.tests.common as common + +from ..models.mis_safe_eval import mis_safe_eval, DataError + + +class TestMisSafeEval(common.TransactionCase): + + def test_nominal(self): + val = mis_safe_eval('a + 1', {'a': 1}) + self.assertEqual(val, 2) + + def test_exceptions(self): + val = mis_safe_eval('1/0', {}) # division by zero + self.assertTrue(isinstance(val, DataError)) + self.assertEqual(val.name, '#DIV/0') + val = mis_safe_eval('1a', {}) # syntax error + self.assertTrue(isinstance(val, DataError)) + self.assertEqual(val.name, '#ERR') + + def test_name_error(self): + with self.assertRaises(NameError): + mis_safe_eval('a + 1', {})