|
2 | 2 |
|
3 | 3 | from __future__ import unicode_literals |
4 | 4 |
|
| 5 | +import datetime |
5 | 6 | from decimal import Decimal |
6 | 7 | import unittest |
7 | 8 |
|
8 | 9 | import adapters |
9 | 10 |
|
| 11 | +import dateutil.tz |
| 12 | + |
10 | 13 |
|
11 | 14 | class FieldsTest(unittest.TestCase): |
12 | 15 | def test_char_field(self): |
@@ -58,3 +61,29 @@ def test_boolean_field_from_string(self): |
58 | 61 | def test_boolean_field_from_null(self): |
59 | 62 | actual = adapters.BooleanField().adapt(None) |
60 | 63 | self.assertFalse(actual) |
| 64 | + |
| 65 | + def test_time_field(self): |
| 66 | + now = datetime.datetime.today().time() |
| 67 | + actual = adapters.TimeField().adapt(now) |
| 68 | + expected = now |
| 69 | + self.assertEqual(actual, expected) |
| 70 | + |
| 71 | + def test_time_field_from_string(self): |
| 72 | + tzoffset = dateutil.tz.tzoffset(None, 7200) |
| 73 | + time = datetime.time(13, 14, 15, 16, tzinfo=tzoffset) |
| 74 | + |
| 75 | + actual = adapters.TimeField().adapt('13:14:15.000016+02:00') |
| 76 | + expected = time |
| 77 | + self.assertEqual(actual, expected) |
| 78 | + |
| 79 | + actual = adapters.TimeField().adapt('13:14:15.000016') |
| 80 | + expected = datetime.time(13, 14, 15, 16) |
| 81 | + self.assertEqual(actual, expected) |
| 82 | + |
| 83 | + actual = adapters.TimeField().adapt(time.strftime('%H:%M:%S')) |
| 84 | + expected = datetime.time(13, 14, 15) |
| 85 | + self.assertEqual(actual, expected) |
| 86 | + |
| 87 | + actual = adapters.TimeField().adapt(time.strftime('%H:%M')) |
| 88 | + expected = datetime.time(13, 14) |
| 89 | + self.assertEqual(actual, expected) |
0 commit comments