Mercurial > babel > mirror
annotate babel/tests/dates.py @ 29:72bf45adb926 trunk
More work on timezones.
author | cmlenz |
---|---|
date | Mon, 04 Jun 2007 10:51:38 +0000 |
parents | d8352fbaca65 |
children | 13d69e50fc3a |
rev | line source |
---|---|
1 | 1 # -*- coding: utf-8 -*- |
2 # | |
12
e6ba3e878b10
* Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents:
1
diff
changeset
|
3 # Copyright (C) 2007 Edgewall Software |
1 | 4 # All rights reserved. |
5 # | |
6 # This software is licensed as described in the file COPYING, which | |
7 # you should have received as part of this distribution. The terms | |
8 # are also available at http://babel.edgewall.org/wiki/License. | |
9 # | |
10 # This software consists of voluntary contributions made by many | |
11 # individuals. For the exact contribution history, see the revision | |
12 # history and logs, available at http://babel.edgewall.org/log/. | |
13 | |
19
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
14 from datetime import date, datetime, time |
1 | 15 import doctest |
16 import unittest | |
17 | |
29 | 18 from pytz import timezone |
19 | |
1 | 20 from babel import dates |
21 | |
15 | 22 |
23 class DateTimeFormatTestCase(unittest.TestCase): | |
24 | |
25 def test_local_day_of_week(self): | |
26 d = datetime(2007, 4, 1) # a sunday | |
27 fmt = dates.DateTimeFormat(d, locale='de_DE') | |
28 self.assertEqual('7', fmt['e']) # monday is first day of week | |
29 fmt = dates.DateTimeFormat(d, locale='en_US') | |
30 self.assertEqual('01', fmt['ee']) # sunday is first day of week | |
31 fmt = dates.DateTimeFormat(d, locale='dv_MV') | |
32 self.assertEqual('03', fmt['ee']) # friday is first day of week | |
33 | |
34 d = datetime(2007, 4, 2) # a monday | |
35 fmt = dates.DateTimeFormat(d, locale='de_DE') | |
36 self.assertEqual('1', fmt['e']) # monday is first day of week | |
37 fmt = dates.DateTimeFormat(d, locale='en_US') | |
38 self.assertEqual('02', fmt['ee']) # sunday is first day of week | |
39 fmt = dates.DateTimeFormat(d, locale='dv_MV') | |
40 self.assertEqual('04', fmt['ee']) # friday is first day of week | |
41 | |
42 def test_local_day_of_week_standalone(self): | |
43 d = datetime(2007, 4, 1) # a sunday | |
44 fmt = dates.DateTimeFormat(d, locale='de_DE') | |
45 self.assertEqual('7', fmt['c']) # monday is first day of week | |
46 fmt = dates.DateTimeFormat(d, locale='en_US') | |
47 self.assertEqual('1', fmt['c']) # sunday is first day of week | |
48 fmt = dates.DateTimeFormat(d, locale='dv_MV') | |
49 self.assertEqual('3', fmt['c']) # friday is first day of week | |
50 | |
51 d = datetime(2007, 4, 2) # a monday | |
52 fmt = dates.DateTimeFormat(d, locale='de_DE') | |
53 self.assertEqual('1', fmt['c']) # monday is first day of week | |
54 fmt = dates.DateTimeFormat(d, locale='en_US') | |
55 self.assertEqual('2', fmt['c']) # sunday is first day of week | |
56 fmt = dates.DateTimeFormat(d, locale='dv_MV') | |
57 self.assertEqual('4', fmt['c']) # friday is first day of week | |
58 | |
29 | 59 def test_timezone_rfc822(self): |
60 tz = timezone('Europe/Berlin') | |
61 t = time(15, 30, tzinfo=tz) | |
62 fmt = dates.DateTimeFormat(t, locale='de_DE') | |
63 self.assertEqual('+0100', fmt['Z']) | |
64 | |
65 def test_timezone_gmt(self): | |
66 tz = timezone('Europe/Berlin') | |
67 t = time(15, 30, tzinfo=tz) | |
68 fmt = dates.DateTimeFormat(t, locale='de_DE') | |
69 self.assertEqual('GMT +01:00', fmt['ZZZZ']) | |
70 | |
71 | |
15 | 72 |
19
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
73 class FormatDateTestCase(unittest.TestCase): |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
74 |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
75 def test_with_time_fields_in_pattern(self): |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
76 self.assertRaises(AttributeError, dates.format_date, date(2007, 04, 01), |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
77 "yyyy-MM-dd HH:mm", locale='en_US') |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
78 |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
79 def test_with_time_fields_in_pattern_and_datetime_param(self): |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
80 self.assertRaises(AttributeError, dates.format_date, |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
81 datetime(2007, 04, 01, 15, 30), |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
82 "yyyy-MM-dd HH:mm", locale='en_US') |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
83 |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
84 |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
85 class FormatTimeTestCase(unittest.TestCase): |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
86 |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
87 def test_with_date_fields_in_pattern(self): |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
88 self.assertRaises(AttributeError, dates.format_time, date(2007, 04, 01), |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
89 "yyyy-MM-dd HH:mm", locale='en_US') |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
90 |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
91 def test_with_date_fields_in_pattern_and_datetime_param(self): |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
92 self.assertRaises(AttributeError, dates.format_time, |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
93 datetime(2007, 04, 01, 15, 30), |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
94 "yyyy-MM-dd HH:mm", locale='en_US') |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
95 |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
96 |
1 | 97 def suite(): |
98 suite = unittest.TestSuite() | |
99 suite.addTest(doctest.DocTestSuite(dates)) | |
15 | 100 suite.addTest(unittest.makeSuite(DateTimeFormatTestCase)) |
19
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
101 suite.addTest(unittest.makeSuite(FormatDateTestCase)) |
d8352fbaca65
Moved some datetime tests from doctest to unittest, to avoid breaking docutils/epydoc doctest block detection.
cmlenz
parents:
16
diff
changeset
|
102 suite.addTest(unittest.makeSuite(FormatTimeTestCase)) |
1 | 103 return suite |
104 | |
105 if __name__ == '__main__': | |
106 unittest.main(defaultTest='suite') |