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
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
1 # -*- coding: utf-8 -*-
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
2 #
12
e6ba3e878b10 * Removed pkg_resources/setuptools requirement from various places.
cmlenz
parents: 1
diff changeset
3 # Copyright (C) 2007 Edgewall Software
1
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
4 # All rights reserved.
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
5 #
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
6 # This software is licensed as described in the file COPYING, which
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
7 # you should have received as part of this distribution. The terms
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
8 # are also available at http://babel.edgewall.org/wiki/License.
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
9 #
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
10 # This software consists of voluntary contributions made by many
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
11 # individuals. For the exact contribution history, see the revision
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
12 # history and logs, available at http://babel.edgewall.org/log/.
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
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
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
15 import doctest
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
16 import unittest
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
17
29
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
18 from pytz import timezone
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
19
1
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
20 from babel import dates
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
21
15
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
22
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
23 class DateTimeFormatTestCase(unittest.TestCase):
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
24
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
25 def test_local_day_of_week(self):
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
26 d = datetime(2007, 4, 1) # a sunday
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
27 fmt = dates.DateTimeFormat(d, locale='de_DE')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
28 self.assertEqual('7', fmt['e']) # monday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
29 fmt = dates.DateTimeFormat(d, locale='en_US')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
30 self.assertEqual('01', fmt['ee']) # sunday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
31 fmt = dates.DateTimeFormat(d, locale='dv_MV')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
32 self.assertEqual('03', fmt['ee']) # friday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
33
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
34 d = datetime(2007, 4, 2) # a monday
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
35 fmt = dates.DateTimeFormat(d, locale='de_DE')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
36 self.assertEqual('1', fmt['e']) # monday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
37 fmt = dates.DateTimeFormat(d, locale='en_US')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
38 self.assertEqual('02', fmt['ee']) # sunday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
39 fmt = dates.DateTimeFormat(d, locale='dv_MV')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
40 self.assertEqual('04', fmt['ee']) # friday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
41
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
42 def test_local_day_of_week_standalone(self):
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
43 d = datetime(2007, 4, 1) # a sunday
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
44 fmt = dates.DateTimeFormat(d, locale='de_DE')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
45 self.assertEqual('7', fmt['c']) # monday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
46 fmt = dates.DateTimeFormat(d, locale='en_US')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
47 self.assertEqual('1', fmt['c']) # sunday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
48 fmt = dates.DateTimeFormat(d, locale='dv_MV')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
49 self.assertEqual('3', fmt['c']) # friday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
50
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
51 d = datetime(2007, 4, 2) # a monday
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
52 fmt = dates.DateTimeFormat(d, locale='de_DE')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
53 self.assertEqual('1', fmt['c']) # monday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
54 fmt = dates.DateTimeFormat(d, locale='en_US')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
55 self.assertEqual('2', fmt['c']) # sunday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
56 fmt = dates.DateTimeFormat(d, locale='dv_MV')
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
57 self.assertEqual('4', fmt['c']) # friday is first day of week
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
58
29
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
59 def test_timezone_rfc822(self):
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
60 tz = timezone('Europe/Berlin')
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
61 t = time(15, 30, tzinfo=tz)
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
62 fmt = dates.DateTimeFormat(t, locale='de_DE')
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
63 self.assertEqual('+0100', fmt['Z'])
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
64
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
65 def test_timezone_gmt(self):
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
66 tz = timezone('Europe/Berlin')
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
67 t = time(15, 30, tzinfo=tz)
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
68 fmt = dates.DateTimeFormat(t, locale='de_DE')
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
69 self.assertEqual('GMT +01:00', fmt['ZZZZ'])
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
70
72bf45adb926 More work on timezones.
cmlenz
parents: 19
diff changeset
71
15
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
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
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
97 def suite():
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
98 suite = unittest.TestSuite()
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
99 suite.addTest(doctest.DocTestSuite(dates))
15
244a74232f5e Minor date formatting improvements.
cmlenz
parents: 12
diff changeset
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
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
103 return suite
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
104
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
105 if __name__ == '__main__':
7870274479f5 Import of initial code base.
cmlenz
parents:
diff changeset
106 unittest.main(defaultTest='suite')
Copyright (C) 2012-2017 Edgewall Software