Skip to content

Commit c88691b

Browse files
committed
[test_property.py] Add Datetime Tests for Append, Extend and Insert
1 parent d1fb526 commit c88691b

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed

test/test_property.py

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import unittest
2+
import datetime
23

34
from odml import Property, Section, Document, DType
45
from odml.property import BaseProperty
@@ -245,6 +246,45 @@ def test_value_append(self):
245246
self.assertEqual(len(prop9), 3)
246247
self.assertRaises(ValueError, prop9.append, [[10, 11]])
247248

249+
prop10 = Property(name="prop10", dtype="date", values=['2011-12-01', '2011-12-02'])
250+
with self.assertRaises(ValueError):
251+
prop10.append('2011-12-03', strict=True)
252+
self.assertEqual(prop10.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2)])
253+
prop10.append('2011-12-03', strict=False)
254+
self.assertEqual(prop10.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2),
255+
datetime.date(2011, 12, 3)])
256+
prop10.append([datetime.date(2011, 12, 4)], strict=True)
257+
self.assertEqual(prop10.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2),
258+
datetime.date(2011, 12, 3), datetime.date(2011, 12, 4)])
259+
260+
261+
prop11 = Property(name="prop11", dtype="time", values=['12:00:01', '12:00:02'])
262+
with self.assertRaises(ValueError):
263+
prop11.append('12:00:03', strict=True)
264+
self.assertEqual(prop11.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2)])
265+
prop11.append('12:00:03', strict=False)
266+
self.assertEqual(prop11.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2),
267+
datetime.time(12, 0, 3)])
268+
prop11.append([datetime.time(12, 0, 4)], strict=True)
269+
self.assertEqual(prop11.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2),
270+
datetime.time(12, 0, 3), datetime.time(12, 0, 4)])
271+
272+
prop12 = Property(name="prop12", dtype="datetime",
273+
values=['2011-12-01 12:00:01', '2011-12-01 12:00:02'])
274+
with self.assertRaises(ValueError):
275+
prop12.append('2011-12-01 12:00:03', strict=True)
276+
self.assertEqual(prop12.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
277+
datetime.datetime(2011, 12, 1, 12, 0, 2)])
278+
prop12.append('2011-12-01 12:00:03', strict=False)
279+
self.assertEqual(prop12.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
280+
datetime.datetime(2011, 12, 1, 12, 0, 2),
281+
datetime.datetime(2011, 12, 1, 12, 0, 3)])
282+
prop12.append([datetime.datetime(2011, 12, 1, 12, 0, 4)], strict=True)
283+
self.assertEqual(prop12.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
284+
datetime.datetime(2011, 12, 1, 12, 0, 2),
285+
datetime.datetime(2011, 12, 1, 12, 0, 3),
286+
datetime.datetime(2011, 12, 1, 12, 0, 4)])
287+
248288
def test_value_extend(self):
249289
prop = Property(name="extend")
250290

@@ -353,6 +393,67 @@ def test_value_extend(self):
353393
self.assertEqual(len(prop4), 5)
354394
self.assertRaises(ValueError, prop4.extend, [[10, 11]])
355395

396+
prop4 = Property(name="prop4", dtype="date", values=['2011-12-01', '2011-12-02'])
397+
with self.assertRaises(ValueError):
398+
prop4.extend('2011-12-03', strict=True)
399+
self.assertEqual(prop4.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2)])
400+
prop4.extend('2011-12-03', strict=False)
401+
self.assertEqual(prop4.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2),
402+
datetime.date(2011, 12, 3)])
403+
prop4.extend([datetime.date(2011, 12, 4)], strict=True)
404+
self.assertEqual(prop4.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2),
405+
datetime.date(2011, 12, 3), datetime.date(2011, 12, 4)])
406+
prop4.extend([datetime.date(2011, 12, 5), datetime.date(2011, 12, 6)], strict=True)
407+
self.assertEqual(prop4.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2),
408+
datetime.date(2011, 12, 3), datetime.date(2011, 12, 4),
409+
datetime.date(2011, 12, 5), datetime.date(2011, 12, 6)])
410+
with self.assertRaises(ValueError):
411+
prop4.extend(['2011-12-03', 'abc'], strict=False)
412+
413+
414+
prop5 = Property(name="prop5", dtype="time", values=['12:00:01', '12:00:02'])
415+
with self.assertRaises(ValueError):
416+
prop5.extend('12:00:03', strict=True)
417+
self.assertEqual(prop5.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2)])
418+
prop5.extend('12:00:03', strict=False)
419+
self.assertEqual(prop5.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2),
420+
datetime.time(12, 0, 3)])
421+
prop5.extend([datetime.time(12, 0, 4)], strict=True)
422+
self.assertEqual(prop5.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2),
423+
datetime.time(12, 0, 3), datetime.time(12, 0, 4)])
424+
prop5.extend([datetime.time(12, 0, 5), datetime.time(12, 0, 6)], strict=True)
425+
self.assertEqual(prop5.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2),
426+
datetime.time(12, 0, 3), datetime.time(12, 0, 4),
427+
datetime.time(12, 0, 5), datetime.time(12, 0, 6)])
428+
with self.assertRaises(ValueError):
429+
prop4.extend(['12:00:07', 'abc'], strict=False)
430+
431+
prop6 = Property(name="prop6", dtype="datetime",
432+
values=['2011-12-01 12:00:01', '2011-12-01 12:00:02'])
433+
with self.assertRaises(ValueError):
434+
prop6.extend('2011-12-01 12:00:03', strict=True)
435+
self.assertEqual(prop6.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
436+
datetime.datetime(2011, 12, 1, 12, 0, 2)])
437+
prop6.extend('2011-12-01 12:00:03', strict=False)
438+
self.assertEqual(prop6.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
439+
datetime.datetime(2011, 12, 1, 12, 0, 2),
440+
datetime.datetime(2011, 12, 1, 12, 0, 3)])
441+
prop6.extend([datetime.datetime(2011, 12, 1, 12, 0, 4)], strict=True)
442+
self.assertEqual(prop6.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
443+
datetime.datetime(2011, 12, 1, 12, 0, 2),
444+
datetime.datetime(2011, 12, 1, 12, 0, 3),
445+
datetime.datetime(2011, 12, 1, 12, 0, 4)])
446+
prop6.extend([datetime.datetime(2011, 12, 1, 12, 0, 5),
447+
datetime.datetime(2011, 12, 1, 12, 0, 6)], strict=True)
448+
self.assertEqual(prop6.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
449+
datetime.datetime(2011, 12, 1, 12, 0, 2),
450+
datetime.datetime(2011, 12, 1, 12, 0, 3),
451+
datetime.datetime(2011, 12, 1, 12, 0, 4),
452+
datetime.datetime(2011, 12, 1, 12, 0, 5),
453+
datetime.datetime(2011, 12, 1, 12, 0, 6)])
454+
with self.assertRaises(ValueError):
455+
prop4.extend(['2011-12-03 12:00:07', 'abc'], strict=False)
456+
356457
def test_insert(self):
357458
prop1 = Property(name="prop1", dtype="int", values=[0,2])
358459
prop1.insert(1, 1)
@@ -416,6 +517,45 @@ def test_insert(self):
416517
prop6.insert(1, 0, strict=True)
417518
self.assertEqual(prop6.values, [True, True, False, True])
418519

520+
prop7 = Property(name="prop7", dtype="date", values=['2011-12-01', '2011-12-04'])
521+
with self.assertRaises(ValueError):
522+
prop7.insert(1, '2011-12-03', strict=True)
523+
self.assertEqual(prop7.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 4)])
524+
prop7.insert(1, '2011-12-03', strict=False)
525+
self.assertEqual(prop7.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 3),
526+
datetime.date(2011, 12, 4)])
527+
prop7.insert(1, [datetime.date(2011, 12, 2)], strict=True)
528+
self.assertEqual(prop7.values, [datetime.date(2011, 12, 1), datetime.date(2011, 12, 2),
529+
datetime.date(2011, 12, 3), datetime.date(2011, 12, 4)])
530+
531+
532+
prop8 = Property(name="prop8", dtype="time", values=['12:00:01', '12:00:04'])
533+
with self.assertRaises(ValueError):
534+
prop8.insert(1, '12:00:03', strict=True)
535+
self.assertEqual(prop8.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 4)])
536+
prop8.insert(1, '12:00:03', strict=False)
537+
self.assertEqual(prop8.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 3),
538+
datetime.time(12, 0, 4)])
539+
prop8.insert(1, [datetime.time(12, 0, 2)], strict=True)
540+
self.assertEqual(prop8.values, [datetime.time(12, 0, 1), datetime.time(12, 0, 2),
541+
datetime.time(12, 0, 3), datetime.time(12, 0, 4)])
542+
543+
prop9 = Property(name="prop9", dtype="datetime",
544+
values=['2011-12-01 12:00:01', '2011-12-01 12:00:04'])
545+
with self.assertRaises(ValueError):
546+
prop9.insert(1, '2011-12-01 12:00:03', strict=True)
547+
self.assertEqual(prop9.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
548+
datetime.datetime(2011, 12, 1, 12, 0, 4)])
549+
prop9.insert(1, '2011-12-01 12:00:03', strict=False)
550+
self.assertEqual(prop9.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
551+
datetime.datetime(2011, 12, 1, 12, 0, 3),
552+
datetime.datetime(2011, 12, 1, 12, 0, 4)])
553+
prop9.insert(1, [datetime.datetime(2011, 12, 1, 12, 0, 2)], strict=True)
554+
self.assertEqual(prop9.values, [datetime.datetime(2011, 12, 1, 12, 0, 1),
555+
datetime.datetime(2011, 12, 1, 12, 0, 2),
556+
datetime.datetime(2011, 12, 1, 12, 0, 3),
557+
datetime.datetime(2011, 12, 1, 12, 0, 4)])
558+
419559
def test_reorder(self):
420560
sec = Section()
421561
prop_zero = Property(name="prop_zero", parent=sec)

0 commit comments

Comments
 (0)