From 676c09aedc04521d9d2efdcc5ce2fd3c9cea3d3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 13 May 2009 12:40:31 +0200 Subject: [PATCH] Add unittest for Boolean fields --- trytond/tests/__init__.py | 1 + trytond/tests/test_tryton.py | 60 ++++++++++++++++++++++++++++++++++++ trytond/tests/tests.py | 37 ++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 trytond/tests/tests.py diff --git a/trytond/tests/__init__.py b/trytond/tests/__init__.py index 02b906041c..0c276c9937 100644 --- a/trytond/tests/__init__.py +++ b/trytond/tests/__init__.py @@ -1,4 +1,5 @@ #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 tests import * from mptt import * diff --git a/trytond/tests/test_tryton.py b/trytond/tests/test_tryton.py index 6139a92cad..7c42279fc7 100644 --- a/trytond/tests/test_tryton.py +++ b/trytond/tests/test_tryton.py @@ -54,6 +54,65 @@ class DBTestCase(unittest.TestCase): login() +class FieldsTestCase(unittest.TestCase): + ''' + Test Fields. + ''' + + def setUp(self): + install_module('tests') + self.boolean = RPCProxy('tests.boolean') + self.boolean_default = RPCProxy('tests.boolean_default') + self.boolean_required = RPCProxy('tests.boolean_required') + + def test0010boolean(self): + ''' + Test booleans. + ''' + boolean1_id = self.boolean.create({ + 'boolean': True, + }, CONTEXT) + self.assert_(boolean1_id) + + boolean1 = self.boolean.read(boolean1_id, ['boolean'], CONTEXT) + self.assert_(boolean1['boolean'] == True) + + boolean2_id = self.boolean.create({ + 'boolean': False, + }, CONTEXT) + self.assert_(boolean2_id) + + boolean2 = self.boolean.read(boolean2_id, ['boolean'], CONTEXT) + self.assert_(boolean2['boolean'] == False) + + boolean3_id = self.boolean.create({}, CONTEXT) + self.assert_(boolean3_id) + + boolean3 = self.boolean.read(boolean3_id, ['boolean'], CONTEXT) + self.assert_(boolean3['boolean'] == False) + + boolean4_id = self.boolean_default.create({}, CONTEXT) + self.assert_(boolean4_id) + + boolean4 = self.boolean_default.read(boolean4_id, ['boolean'], CONTEXT) + self.assert_(boolean4['boolean'] == True) + + boolean5_id = self.boolean_required.create({}, CONTEXT) + self.assert_(boolean5_id) + + self.boolean.write(boolean1_id, { + 'boolean': False, + }, CONTEXT) + boolean1 = self.boolean.read(boolean1_id, ['boolean'], CONTEXT) + self.assert_(boolean1['boolean'] == False) + + self.boolean.write(boolean2_id, { + 'boolean': True, + }, CONTEXT) + boolean2 = self.boolean.read(boolean2_id, ['boolean'], CONTEXT) + self.assert_(boolean2['boolean'] == True) + + class MPTTTestCase(unittest.TestCase): ''' Test Modified Preorder Tree Traversal. @@ -254,6 +313,7 @@ def suite(): if __name__ == '__main__': suite = suite() + suite.addTests(unittest.TestLoader().loadTestsFromTestCase(FieldsTestCase)) suite.addTests(unittest.TestLoader().loadTestsFromTestCase(MPTTTestCase)) unittest.TextTestRunner(verbosity=2).run(suite) SOCK.disconnect() diff --git a/trytond/tests/tests.py b/trytond/tests/tests.py new file mode 100644 index 0000000000..bcb10fbaa8 --- /dev/null +++ b/trytond/tests/tests.py @@ -0,0 +1,37 @@ +#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 + + +class Boolean(ModelSQL): + 'Boolean' + _name = 'tests.boolean' + _description = __doc__ + boolean = fields.Boolean(string='Boolean', help='Test boolean', + required=False) + +Boolean() + + +class BooleanDefault(ModelSQL): + 'Boolean Default' + _name = 'tests.boolean_default' + _description = __doc__ + boolean = fields.Boolean(string='Boolean', help='Test boolean', + required=False) + + def default_boolean(self, cursor, user, context=None): + return True + +BooleanDefault() + + +class BooleanRequired(ModelSQL): + 'Boolean Required' + _name = 'tests.boolean_required' + _description = __doc__ + boolean = fields.Boolean(string='Boolean', help='Test boolean', + required=True) + +BooleanRequired()