From 35b6c0b1512ddf650e2e97107690fd097f07d2d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 10 Nov 2009 14:01:00 +0100 Subject: [PATCH] Add unittest for DateTime field --- trytond/tests/test_tryton.py | 259 +++++++++++++++++++++++++++++++++++ trytond/tests/tests.py | 33 +++++ 2 files changed, 292 insertions(+) diff --git a/trytond/tests/test_tryton.py b/trytond/tests/test_tryton.py index e4b3abbc60..f6a5f2cf52 100644 --- a/trytond/tests/test_tryton.py +++ b/trytond/tests/test_tryton.py @@ -171,6 +171,10 @@ class FieldsTestCase(unittest.TestCase): self.date_default = RPCProxy('tests.date_default') self.date_required = RPCProxy('tests.date_required') + self.datetime = RPCProxy('tests.datetime') + self.datetime_default = RPCProxy('tests.datetime_default') + self.datetime_required = RPCProxy('tests.datetime_required') + def test0010boolean(self): ''' Test Boolean. @@ -1810,6 +1814,261 @@ class FieldsTestCase(unittest.TestCase): }, CONTEXT) self.assert_(date8_id) + def test0090datetime(self): + ''' + Test DateTime. + ''' + today = datetime.datetime(2009, 1, 1, 12, 0, 0) + tomorrow = today + datetime.timedelta(1) + yesterday = today - datetime.timedelta(1) + default_datetime = datetime.datetime(2000, 1, 1, 12, 0, 0) + + datetime1_id = self.datetime.create({ + 'datetime': today, + }, CONTEXT) + self.assert_(datetime1_id) + + datetime1 = self.datetime.read(datetime1_id, ['datetime'], CONTEXT) + self.assert_(datetime1['datetime'] == today) + + datetime_ids = self.datetime.search([ + ('datetime', '=', today), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '=', tomorrow), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '=', False), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '!=', today), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '!=', tomorrow), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '!=', False), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', 'in', [today]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', 'in', [tomorrow]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', 'in', [False]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', 'in', []), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', 'not in', [today]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', 'not in', [tomorrow]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', 'not in', [False]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', 'not in', []), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '<', tomorrow), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '<', yesterday), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '<', today), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '<=', today), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '<=', yesterday), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '<=', tomorrow), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '>', tomorrow), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '>', yesterday), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '>', today), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '>=', tomorrow), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime_ids = self.datetime.search([ + ('datetime', '>=', yesterday), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime_ids = self.datetime.search([ + ('datetime', '>=', today), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id]) + + datetime2_id = self.datetime.create({ + 'datetime': yesterday, + }, CONTEXT) + self.assert_(datetime2_id) + + datetime2 = self.datetime.read(datetime2_id, ['datetime'], CONTEXT) + self.assert_(datetime2['datetime'] == yesterday) + + datetime_ids = self.datetime.search([ + ('datetime', '=', yesterday), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime2_id]) + + datetime_ids = self.datetime.search([ + ('datetime', 'in', [yesterday, today]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == [datetime1_id, datetime2_id]) + + datetime_ids = self.datetime.search([ + ('datetime', 'not in', [yesterday, today]), + ], 0, None, None, CONTEXT) + self.assert_(datetime_ids == []) + + datetime3_id = self.datetime.create({}, CONTEXT) + self.assert_(datetime3_id) + + datetime3 = self.datetime.read(datetime3_id, ['datetime'], CONTEXT) + self.assert_(datetime3['datetime'] == None) + + datetime4_id = self.datetime_default.create({}, CONTEXT) + self.assert_(datetime4_id) + + datetime4 = self.datetime_default.read(datetime4_id, ['datetime'], CONTEXT) + self.assert_(datetime4['datetime'] == default_datetime) + + self.datetime.write(datetime1_id, { + 'datetime': yesterday, + }, CONTEXT) + datetime1 = self.datetime.read(datetime1_id, ['datetime'], CONTEXT) + self.assert_(datetime1['datetime'] == yesterday) + + self.datetime.write(datetime2_id, { + 'datetime': today, + }, CONTEXT) + datetime2 = self.datetime.read(datetime2_id, ['datetime'], CONTEXT) + self.assert_(datetime2['datetime'] == today) + + self.failUnlessRaises(Exception, self.datetime.create, { + 'datetime': 'test', + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.write, datetime1_id, { + 'datetime': 'test', + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.create, { + 'datetime': 1, + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.write, datetime1_id, { + 'datetime': 1, + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.create, { + 'datetime': datetime.date.today(), + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.write, datetime1_id, { + 'datetime': datetime.date.today(), + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.create, { + 'datetime': '2009-13-01 12:30:00', + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.write, datetime1_id, { + 'datetime': '2009-02-29 12:30:00', + }, CONTEXT) + + self.failUnlessRaises(Exception, self.datetime.write, datetime1_id, { + 'datetime': '2009-01-01 25:00:00', + }, CONTEXT) + + datetime5_id = self.datetime.create({ + 'datetime': '2009-01-01 12:00:00', + }, CONTEXT) + self.assert_(datetime5_id) + datetime5 = self.datetime.read(datetime5_id, ['datetime'], CONTEXT) + self.assert_(datetime5['datetime'] == datetime.datetime(2009, 1, 1, 12, + 0, 0)) + + self.failUnlessRaises(Exception,self.datetime_required.create, {}, CONTEXT) + + datetime6_id = self.datetime_required.create({ + 'datetime': today, + }, CONTEXT) + self.assert_(datetime6_id) + + datetime7_id = self.datetime.create({ + 'datetime': None, + }, CONTEXT) + self.assert_(datetime7_id) + + datetime8_id = self.datetime.create({ + 'datetime': False, + }, CONTEXT) + self.assert_(datetime8_id) + class ModelViewTestCase(unittest.TestCase): ''' diff --git a/trytond/tests/tests.py b/trytond/tests/tests.py index 9ad5c97b50..6900d9604b 100644 --- a/trytond/tests/tests.py +++ b/trytond/tests/tests.py @@ -277,3 +277,36 @@ class DateRequired(ModelSQL): required=True) DateRequired() + + +class DateTime(ModelSQL): + 'DateTime' + _name = 'tests.datetime' + _description = __doc__ + datetime = fields.DateTime(string='DateTime', help='Test datetime', + required=False) + +DateTime() + + +class DateTimeDefault(ModelSQL): + 'DateTime Default' + _name = 'tests.datetime_default' + _description = __doc__ + datetime = fields.DateTime(string='DateTime', help='Test datetime', + required=False) + + def default_datetime(self, cursor, user, context=None): + return datetime.datetime(2000, 1, 1, 12, 0, 0, 0) + +DateTimeDefault() + + +class DateTimeRequired(ModelSQL): + 'DateTime Required' + _name = 'tests.datetime_required' + _description = __doc__ + datetime = fields.DateTime(string='DateTime', help='Test datetime', + required=True) + +DateTimeRequired()