|
| 1 | +from __future__ import unicode_literals |
| 2 | + |
| 3 | +from datetime import date, time, datetime |
| 4 | + |
| 5 | +from django.utils.dateparse import parse_date, parse_time, parse_datetime |
| 6 | +from django.utils import unittest |
| 7 | +from django.utils.tzinfo import FixedOffset |
| 8 | + |
| 9 | + |
| 10 | +class DateParseTests(unittest.TestCase): |
| 11 | + |
| 12 | + def test_parse_date(self): |
| 13 | + # Valid inputs |
| 14 | + self.assertEqual(parse_date('2012-04-23'), date(2012, 4, 23)) |
| 15 | + self.assertEqual(parse_date('2012-4-9'), date(2012, 4, 9)) |
| 16 | + # Invalid inputs |
| 17 | + self.assertEqual(parse_date('20120423'), None) |
| 18 | + self.assertRaises(ValueError, parse_date, '2012-04-56') |
| 19 | + |
| 20 | + def test_parse_time(self): |
| 21 | + # Valid inputs |
| 22 | + self.assertEqual(parse_time('09:15:00'), time(9, 15)) |
| 23 | + self.assertEqual(parse_time('10:10'), time(10, 10)) |
| 24 | + self.assertEqual(parse_time('10:20:30.400'), time(10, 20, 30, 400000)) |
| 25 | + self.assertEqual(parse_time('4:8:16'), time(4, 8, 16)) |
| 26 | + # Invalid inputs |
| 27 | + self.assertEqual(parse_time('091500'), None) |
| 28 | + self.assertRaises(ValueError, parse_time, '09:15:90') |
| 29 | + |
| 30 | + def test_parse_datetime(self): |
| 31 | + # Valid inputs |
| 32 | + self.assertEqual(parse_datetime('2012-04-23T09:15:00'), |
| 33 | + datetime(2012, 4, 23, 9, 15)) |
| 34 | + self.assertEqual(parse_datetime('2012-4-9 4:8:16'), |
| 35 | + datetime(2012, 4, 9, 4, 8, 16)) |
| 36 | + self.assertEqual(parse_datetime('2012-04-23T09:15:00Z'), |
| 37 | + datetime(2012, 4, 23, 9, 15, 0, 0, FixedOffset(0))) |
| 38 | + self.assertEqual(parse_datetime('2012-4-9 4:8:16-0320'), |
| 39 | + datetime(2012, 4, 9, 4, 8, 16, 0, FixedOffset(-200))) |
| 40 | + self.assertEqual(parse_datetime('2012-04-23T10:20:30.400+02:30'), |
| 41 | + datetime(2012, 4, 23, 10, 20, 30, 400000, FixedOffset(150))) |
| 42 | + # Invalid inputs |
| 43 | + self.assertEqual(parse_datetime('20120423091500'), None) |
| 44 | + self.assertRaises(ValueError, parse_datetime, '2012-04-56T09:15:90') |
0 commit comments