|
1 | 1 | import unittest
|
| 2 | +import datetime |
2 | 3 |
|
3 | 4 | from odml import Property, Section, Document, DType
|
4 | 5 | from odml.property import BaseProperty
|
@@ -245,6 +246,45 @@ def test_value_append(self):
|
245 | 246 | self.assertEqual(len(prop9), 3)
|
246 | 247 | self.assertRaises(ValueError, prop9.append, [[10, 11]])
|
247 | 248 |
|
| 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 | + |
248 | 288 | def test_value_extend(self):
|
249 | 289 | prop = Property(name="extend")
|
250 | 290 |
|
@@ -353,6 +393,67 @@ def test_value_extend(self):
|
353 | 393 | self.assertEqual(len(prop4), 5)
|
354 | 394 | self.assertRaises(ValueError, prop4.extend, [[10, 11]])
|
355 | 395 |
|
| 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 | + |
356 | 457 | def test_insert(self):
|
357 | 458 | prop1 = Property(name="prop1", dtype="int", values=[0,2])
|
358 | 459 | prop1.insert(1, 1)
|
@@ -416,6 +517,45 @@ def test_insert(self):
|
416 | 517 | prop6.insert(1, 0, strict=True)
|
417 | 518 | self.assertEqual(prop6.values, [True, True, False, True])
|
418 | 519 |
|
| 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 | + |
419 | 559 | def test_reorder(self):
|
420 | 560 | sec = Section()
|
421 | 561 | prop_zero = Property(name="prop_zero", parent=sec)
|
|
0 commit comments