| 587 | self.assertRaises(InvalidDocument, encode, doc) |
| 588 | |
| 589 | def test_datetime_encode_decode(self): |
| 590 | # Negative timestamps |
| 591 | dt1 = datetime.datetime(1, 1, 1, 1, 1, 1, 111000) |
| 592 | dt2 = decode(encode({"date": dt1}))["date"] |
| 593 | self.assertEqual(dt1, dt2) |
| 594 | |
| 595 | dt1 = datetime.datetime(1959, 6, 25, 12, 16, 59, 999000) |
| 596 | dt2 = decode(encode({"date": dt1}))["date"] |
| 597 | self.assertEqual(dt1, dt2) |
| 598 | |
| 599 | # Positive timestamps |
| 600 | dt1 = datetime.datetime(9999, 12, 31, 23, 59, 59, 999000) |
| 601 | dt2 = decode(encode({"date": dt1}))["date"] |
| 602 | self.assertEqual(dt1, dt2) |
| 603 | |
| 604 | dt1 = datetime.datetime(2011, 6, 14, 10, 47, 53, 444000) |
| 605 | dt2 = decode(encode({"date": dt1}))["date"] |
| 606 | self.assertEqual(dt1, dt2) |
| 607 | |
| 608 | def test_large_datetime_truncation(self): |
| 609 | # Ensure that a large datetime is truncated correctly. |