Django

Code

root/django/trunk/tests/regressiontests/db_typecasts/tests.py

Revision 5876, 2.0 kB (checked in by mtredinnick, 1 year ago)

Fixed #5111 -- Set svn:eol-style to 'native' on files that didn't have it
already.

  • Property svn:eol-style set to native
Line 
1 # Unit tests for typecast functions in django.db.backends.util
2
3 from django.db.backends import util as typecasts
4 import datetime, unittest
5
6 TEST_CASES = {
7     'typecast_date': (
8         ('', None),
9         (None, None),
10         ('2005-08-11', datetime.date(2005, 8, 11)),
11         ('1990-01-01', datetime.date(1990, 1, 1)),
12     ),
13     'typecast_time': (
14         ('', None),
15         (None, None),
16         ('0:00:00', datetime.time(0, 0)),
17         ('0:30:00', datetime.time(0, 30)),
18         ('8:50:00', datetime.time(8, 50)),
19         ('08:50:00', datetime.time(8, 50)),
20         ('12:00:00', datetime.time(12, 00)),
21         ('12:30:00', datetime.time(12, 30)),
22         ('13:00:00', datetime.time(13, 00)),
23         ('23:59:00', datetime.time(23, 59)),
24         ('00:00:12', datetime.time(0, 0, 12)),
25         ('00:00:12.5', datetime.time(0, 0, 12, 500000)),
26         ('7:22:13.312', datetime.time(7, 22, 13, 312000)),
27     ),
28     'typecast_timestamp': (
29         ('', None),
30         (None, None),
31         ('2005-08-11 0:00:00', datetime.datetime(2005, 8, 11)),
32         ('2005-08-11 0:30:00', datetime.datetime(2005, 8, 11, 0, 30)),
33         ('2005-08-11 8:50:30', datetime.datetime(2005, 8, 11, 8, 50, 30)),
34         ('2005-08-11 8:50:30.123', datetime.datetime(2005, 8, 11, 8, 50, 30, 123000)),
35         ('2005-08-11 8:50:30.9', datetime.datetime(2005, 8, 11, 8, 50, 30, 900000)),
36         ('2005-08-11 8:50:30.312-05', datetime.datetime(2005, 8, 11, 8, 50, 30, 312000)),
37         ('2005-08-11 8:50:30.312+02', datetime.datetime(2005, 8, 11, 8, 50, 30, 312000)),
38     ),
39     'typecast_boolean': (
40         (None, None),
41         ('', False),
42         ('t', True),
43         ('f', False),
44         ('x', False),
45     ),
46 }
47
48 class DBTypeCasts(unittest.TestCase):
49     def test_typeCasts(self):
50         for k, v in TEST_CASES.items():
51             for inpt, expected in v:
52                 got = getattr(typecasts, k)(inpt)
53                 assert got == expected, "In %s: %r doesn't match %r. Got %r instead." % (k, inpt, expected, got)
54
55 if __name__ == '__main__':
56     unittest.main()
Note: See TracBrowser for help on using the browser.