annotate 0.9.x/babel/tests/dates.py @ 399:26733b2c995d stable

Ported [436] to 0.9.x branch.
author cmlenz
date Tue, 15 Jul 2008 16:48:02 +0000
parents 6a0e7205790f
children 3a00f8293d47
rev   line source
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
1 # -*- coding: utf-8 -*-
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
2 #
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
3 # Copyright (C) 2007 Edgewall Software
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
4 # All rights reserved.
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
5 #
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
6 # This software is licensed as described in the file COPYING, which
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
7 # you should have received as part of this distribution. The terms
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
8 # are also available at http://babel.edgewall.org/wiki/License.
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
9 #
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
10 # This software consists of voluntary contributions made by many
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
11 # individuals. For the exact contribution history, see the revision
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
12 # history and logs, available at http://babel.edgewall.org/log/.
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
13
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
14 from datetime import date, datetime, time
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
15 import doctest
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
16 import unittest
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
17
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
18 from pytz import timezone
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
19
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
20 from babel import dates
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
21
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
22
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
23 class DateTimeFormatTestCase(unittest.TestCase):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
24
399
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
25 def test_quarter_format(self):
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
26 d = date(2006, 6, 8)
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
27 fmt = dates.DateTimeFormat(d, locale='en_US')
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
28 self.assertEqual('2', fmt['Q'])
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
29 self.assertEqual('2nd quarter', fmt['QQQQ'])
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
30 d = date(2006, 12, 31)
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
31 fmt = dates.DateTimeFormat(d, locale='en_US')
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
32 self.assertEqual('Q4', fmt['QQQ'])
26733b2c995d Ported [436] to 0.9.x branch.
cmlenz
parents: 381
diff changeset
33
348
05975a0e7021 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 278
diff changeset
34 def test_month_context(self):
05975a0e7021 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 278
diff changeset
35 d = date(2006, 1, 8)
05975a0e7021 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 278
diff changeset
36 fmt = dates.DateTimeFormat(d, locale='cs_CZ')
05975a0e7021 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 278
diff changeset
37 self.assertEqual('1', fmt['MMM'])
05975a0e7021 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 278
diff changeset
38 fmt = dates.DateTimeFormat(d, locale='cs_CZ')
05975a0e7021 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 278
diff changeset
39 self.assertEqual('1.', fmt['LLL'])
05975a0e7021 Merged revisions [358:360], [364:370], [373:378], [380:382] from [source:trunk].
cmlenz
parents: 278
diff changeset
40
381
6a0e7205790f Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 351
diff changeset
41 def test_abbreviated_month_alias(self):
6a0e7205790f Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 351
diff changeset
42 d = date(2006, 3, 8)
6a0e7205790f Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 351
diff changeset
43 fmt = dates.DateTimeFormat(d, locale='de_DE')
6a0e7205790f Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 351
diff changeset
44 self.assertEqual(u'Mär', fmt['LLL'])
6a0e7205790f Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 351
diff changeset
45
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
46 def test_week_of_year_first(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
47 d = date(2006, 1, 8)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
48 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
49 self.assertEqual('1', fmt['w'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
50 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
51 self.assertEqual('02', fmt['ww'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
52
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
53 def test_week_of_year_first_with_year(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
54 d = date(2006, 1, 1)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
55 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
56 self.assertEqual('52', fmt['w'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
57 self.assertEqual('2005', fmt['YYYY'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
58
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
59 def test_week_of_year_last(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
60 d = date(2005, 12, 26)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
61 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
62 self.assertEqual('52', fmt['w'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
63 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
64 self.assertEqual('53', fmt['ww'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
65
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
66 def test_week_of_month_first(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
67 d = date(2006, 1, 8)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
68 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
69 self.assertEqual('1', fmt['W'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
70 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
71 self.assertEqual('2', fmt['W'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
72
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
73 def test_week_of_month_last(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
74 d = date(2006, 1, 29)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
75 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
76 self.assertEqual('4', fmt['W'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
77 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
78 self.assertEqual('5', fmt['W'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
79
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
80 def test_day_of_year(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
81 d = date(2007, 4, 1)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
82 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
83 self.assertEqual('91', fmt['D'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
84
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
85 def test_day_of_year_first(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
86 d = date(2007, 1, 1)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
87 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
88 self.assertEqual('001', fmt['DDD'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
89
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
90 def test_day_of_year_last(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
91 d = date(2007, 12, 31)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
92 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
93 self.assertEqual('365', fmt['DDD'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
94
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
95 def test_day_of_week_in_month(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
96 d = date(2007, 4, 15)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
97 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
98 self.assertEqual('3', fmt['F'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
99
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
100 def test_day_of_week_in_month_first(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
101 d = date(2007, 4, 1)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
102 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
103 self.assertEqual('1', fmt['F'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
104
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
105 def test_day_of_week_in_month_last(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
106 d = date(2007, 4, 29)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
107 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
108 self.assertEqual('5', fmt['F'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
109
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
110 def test_local_day_of_week(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
111 d = date(2007, 4, 1) # a sunday
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
112 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
113 self.assertEqual('7', fmt['e']) # monday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
114 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
115 self.assertEqual('01', fmt['ee']) # sunday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
116 fmt = dates.DateTimeFormat(d, locale='dv_MV')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
117 self.assertEqual('03', fmt['ee']) # friday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
118
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
119 d = date(2007, 4, 2) # a monday
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
120 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
121 self.assertEqual('1', fmt['e']) # monday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
122 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
123 self.assertEqual('02', fmt['ee']) # sunday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
124 fmt = dates.DateTimeFormat(d, locale='dv_MV')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
125 self.assertEqual('04', fmt['ee']) # friday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
126
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
127 def test_local_day_of_week_standalone(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
128 d = date(2007, 4, 1) # a sunday
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
129 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
130 self.assertEqual('7', fmt['c']) # monday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
131 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
132 self.assertEqual('1', fmt['c']) # sunday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
133 fmt = dates.DateTimeFormat(d, locale='dv_MV')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
134 self.assertEqual('3', fmt['c']) # friday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
135
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
136 d = date(2007, 4, 2) # a monday
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
137 fmt = dates.DateTimeFormat(d, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
138 self.assertEqual('1', fmt['c']) # monday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
139 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
140 self.assertEqual('2', fmt['c']) # sunday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
141 fmt = dates.DateTimeFormat(d, locale='dv_MV')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
142 self.assertEqual('4', fmt['c']) # friday is first day of week
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
143
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
144 def test_fractional_seconds(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
145 t = time(15, 30, 12, 34567)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
146 fmt = dates.DateTimeFormat(t, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
147 self.assertEqual('3457', fmt['SSSS'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
148
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
149 def test_fractional_seconds_zero(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
150 t = time(15, 30, 0)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
151 fmt = dates.DateTimeFormat(t, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
152 self.assertEqual('0000', fmt['SSSS'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
153
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
154 def test_milliseconds_in_day(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
155 t = time(15, 30, 12, 345000)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
156 fmt = dates.DateTimeFormat(t, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
157 self.assertEqual('55812345', fmt['AAAA'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
158
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
159 def test_milliseconds_in_day_zero(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
160 d = time(0, 0, 0)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
161 fmt = dates.DateTimeFormat(d, locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
162 self.assertEqual('0000', fmt['AAAA'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
163
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
164 def test_timezone_rfc822(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
165 tz = timezone('Europe/Berlin')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
166 t = time(15, 30, tzinfo=tz)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
167 fmt = dates.DateTimeFormat(t, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
168 self.assertEqual('+0100', fmt['Z'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
169
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
170 def test_timezone_gmt(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
171 tz = timezone('Europe/Berlin')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
172 t = time(15, 30, tzinfo=tz)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
173 fmt = dates.DateTimeFormat(t, locale='de_DE')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
174 self.assertEqual('GMT+01:00', fmt['ZZZZ'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
175
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
176 def test_timezone_no_uncommon(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
177 tz = timezone('Europe/Paris')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
178 dt = datetime(2007, 4, 1, 15, 30, tzinfo=tz)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
179 fmt = dates.DateTimeFormat(dt, locale='fr_CA')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
180 self.assertEqual('France', fmt['v'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
181
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
182 def test_timezone_with_uncommon(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
183 tz = timezone('Europe/Paris')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
184 dt = datetime(2007, 4, 1, 15, 30, tzinfo=tz)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
185 fmt = dates.DateTimeFormat(dt, locale='fr_CA')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
186 self.assertEqual('HEC', fmt['V'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
187
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
188 def test_timezone_location_format(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
189 tz = timezone('Europe/Paris')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
190 dt = datetime(2007, 4, 1, 15, 30, tzinfo=tz)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
191 fmt = dates.DateTimeFormat(dt, locale='fr_FR')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
192 self.assertEqual('France', fmt['VVVV'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
193
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
194 def test_timezone_walltime_short(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
195 tz = timezone('Europe/Paris')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
196 t = time(15, 30, tzinfo=tz)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
197 fmt = dates.DateTimeFormat(t, locale='fr_FR')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
198 self.assertEqual('HEC', fmt['v'])
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
199
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
200 def test_timezone_walltime_long(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
201 tz = timezone('Europe/Paris')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
202 t = time(15, 30, tzinfo=tz)
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
203 fmt = dates.DateTimeFormat(t, locale='fr_FR')
381
6a0e7205790f Ported [407:415/trunk] back to 0.9.x branch.
cmlenz
parents: 351
diff changeset
204 self.assertEqual(u'heure d’Europe centrale', fmt['vvvv'])
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
205
278
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
206 def test_hour_formatting(self):
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
207 l = 'en_US'
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
208 t = time(0, 0, 0)
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
209 self.assertEqual(dates.format_time(t, 'h a', locale=l), '12 AM')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
210 self.assertEqual(dates.format_time(t, 'H', locale=l), '0')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
211 self.assertEqual(dates.format_time(t, 'k', locale=l), '24')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
212 self.assertEqual(dates.format_time(t, 'K a', locale=l), '0 AM')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
213 t = time(12, 0, 0)
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
214 self.assertEqual(dates.format_time(t, 'h a', locale=l), '12 PM')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
215 self.assertEqual(dates.format_time(t, 'H', locale=l), '12')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
216 self.assertEqual(dates.format_time(t, 'k', locale=l), '12')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
217 self.assertEqual(dates.format_time(t, 'K a', locale=l), '0 PM')
c5d2894d42ee Merged [301:303] from [source:trunk] via svnmerge.
cmlenz
parents: 263
diff changeset
218
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
219
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
220 class FormatDateTestCase(unittest.TestCase):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
221
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
222 def test_with_time_fields_in_pattern(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
223 self.assertRaises(AttributeError, dates.format_date, date(2007, 04, 01),
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
224 "yyyy-MM-dd HH:mm", locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
225
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
226 def test_with_time_fields_in_pattern_and_datetime_param(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
227 self.assertRaises(AttributeError, dates.format_date,
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
228 datetime(2007, 04, 01, 15, 30),
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
229 "yyyy-MM-dd HH:mm", locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
230
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
231
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
232 class FormatTimeTestCase(unittest.TestCase):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
233
351
f7a5e6025fa1 Ported [385] to 0.9.x branch.
cmlenz
parents: 348
diff changeset
234 def test_with_naive_datetime_and_tzinfo(self):
f7a5e6025fa1 Ported [385] to 0.9.x branch.
cmlenz
parents: 348
diff changeset
235 string = dates.format_time(datetime(2007, 4, 1, 15, 30),
f7a5e6025fa1 Ported [385] to 0.9.x branch.
cmlenz
parents: 348
diff changeset
236 'long', tzinfo=timezone('US/Eastern'),
f7a5e6025fa1 Ported [385] to 0.9.x branch.
cmlenz
parents: 348
diff changeset
237 locale='en')
f7a5e6025fa1 Ported [385] to 0.9.x branch.
cmlenz
parents: 348
diff changeset
238 self.assertEqual('11:30:00 AM EDT', string)
f7a5e6025fa1 Ported [385] to 0.9.x branch.
cmlenz
parents: 348
diff changeset
239
263
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
240 def test_with_date_fields_in_pattern(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
241 self.assertRaises(AttributeError, dates.format_time, date(2007, 04, 01),
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
242 "yyyy-MM-dd HH:mm", locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
243
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
244 def test_with_date_fields_in_pattern_and_datetime_param(self):
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
245 self.assertRaises(AttributeError, dates.format_time,
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
246 datetime(2007, 04, 01, 15, 30),
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
247 "yyyy-MM-dd HH:mm", locale='en_US')
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
248
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
249
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
250 def suite():
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
251 suite = unittest.TestSuite()
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
252 suite.addTest(doctest.DocTestSuite(dates))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
253 suite.addTest(unittest.makeSuite(DateTimeFormatTestCase))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
254 suite.addTest(unittest.makeSuite(FormatDateTestCase))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
255 suite.addTest(unittest.makeSuite(FormatTimeTestCase))
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
256 return suite
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
257
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
258 if __name__ == '__main__':
5b7d3f9f7d74 Create branch for 0.9.x maintenance.
cmlenz
parents:
diff changeset
259 unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software