annotate test/test_dates.py @ 4546:d39c37fd2940 git

Repository conversion from Subversion to git.
author Eric S. Raymond <esr@thyrsus.com>
date Tue, 18 Oct 2011 10:20:29 -0400
parents f6a2bfd351ee
children 6e3e4f24c753
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
1 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
2 # Copyright (c) 2001 Bizar Software Pty Ltd (http://www.bizarsoftware.com.au/)
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
3 # This module is free software, and you may redistribute it and/or modify
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
4 # under the same terms as Python, so long as this copyright message and
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
5 # disclaimer are retained in their original form.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
6 #
214
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
10 # POSSIBILITY OF SUCH DAMAGE.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
11 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
2980
e28f047f87fa Interval.from_seconds() produces a buggy output with float argument
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2702
diff changeset
17 #
3973
85cbaa50eba1 xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents: 3954
diff changeset
18 # $Id: test_dates.py,v 1.45 2008-03-07 01:11:55 richard Exp $
1930
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
19 from __future__ import nested_scopes
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
20
3824
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
21 import unittest
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
22 import time
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
23 import datetime
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
24 import calendar
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
25
4407
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
26 from roundup import date, i18n
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
27 from roundup.date import Date, Interval, Range, fixTimeOverflow, \
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
28 get_timezone
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
29
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
30
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
31 class DateTestCase(unittest.TestCase):
4407
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
32 def setUp(self):
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
33 self.old_gettext_ = i18n.gettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
34 self.old_ngettext_ = i18n.ngettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
35 i18n.gettext = i18n.get_translation(language='C').gettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
36 i18n.ngettext = i18n.get_translation(language='C').ngettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
37
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
38 def tearDown(self):
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
39 i18n.gettext = self.old_gettext_
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
40 i18n.ngettext = self.old_ngettext_
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
41
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 def testDateInterval(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
43 ae = self.assertEqual
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 date = Date("2000-06-26.00:34:02 + 2d")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
45 ae(str(date), '2000-06-28.00:34:02')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 date = Date("2000-02-27 + 2d")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
47 ae(str(date), '2000-02-29.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 date = Date("2001-02-27 + 2d")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
49 ae(str(date), '2001-03-01.00:00:00')
4072
d5e2767d4e91 Robustify Date.set.
Stefan Seefeld <stefan@seefeld.name>
parents: 3973
diff changeset
50 date = Date("2009", add_granularity=True)
d5e2767d4e91 Robustify Date.set.
Stefan Seefeld <stefan@seefeld.name>
parents: 3973
diff changeset
51 self.assertRaises(ValueError, Date, ". +30d", add_granularity=True)
d5e2767d4e91 Robustify Date.set.
Stefan Seefeld <stefan@seefeld.name>
parents: 3973
diff changeset
52
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 def testDate(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
54 ae = self.assertEqual
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
55 date = Date("2000-04-17")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
56 ae(str(date), '2000-04-17.00:00:00')
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
57 date = Date("2000/04/17")
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
58 ae(str(date), '2000-04-17.00:00:00')
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
59 date = Date("2000-4-7")
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
60 ae(str(date), '2000-04-07.00:00:00')
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
61 date = Date("2000-4-17")
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
62 ae(str(date), '2000-04-17.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
63 date = Date("01-25")
225
49748e59852a fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
64 y, m, d, x, x, x, x, x, x = time.gmtime(time.time())
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
65 ae(str(date), '%s-01-25.00:00:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
66 date = Date("2000-04-17.03:45")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
67 ae(str(date), '2000-04-17.03:45:00')
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
68 date = Date("2000/04/17.03:45")
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
69 ae(str(date), '2000-04-17.03:45:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
70 date = Date("08-13.22:13")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
71 ae(str(date), '%s-08-13.22:13:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 date = Date("11-07.09:32:43")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
73 ae(str(date), '%s-11-07.09:32:43'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
74 date = Date("14:25")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
75 ae(str(date), '%s-%02d-%02d.14:25:00'%(y, m, d))
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 date = Date("8:47:11")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
77 ae(str(date), '%s-%02d-%02d.08:47:11'%(y, m, d))
1599
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
78 ae(str(Date('2003')), '2003-01-01.00:00:00')
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
79 ae(str(Date('2004-06')), '2004-06-01.00:00:00')
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
80 ae(str(Date('1900-02-01')), '1900-02-01.00:00:00')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
81 ae(str(Date('1800-07-15')), '1800-07-15.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82
3973
85cbaa50eba1 xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents: 3954
diff changeset
83 def testLeapYear(self):
85cbaa50eba1 xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents: 3954
diff changeset
84 self.assertEquals(str(Date('2008-02-29')), '2008-02-29.00:00:00')
85cbaa50eba1 xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents: 3954
diff changeset
85
1535
26f29449c494 fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents: 1505
diff changeset
86 def testDateError(self):
26f29449c494 fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents: 1505
diff changeset
87 self.assertRaises(ValueError, Date, "12")
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
88 # Date cannot handle dates before year 1
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
89 self.assertRaises(ValueError, Date, (0, 1, 1, 0, 0, 0.0, 0, 1, -1))
3456
9c080e19f307 tighten up Date parsing to not allow 'M/D/YY' (or 'D/M/YY) [SF#1290550]
Richard Jones <richard@users.sourceforge.net>
parents: 3208
diff changeset
90 self.assertRaises(ValueError, Date, "1/1/06")
1535
26f29449c494 fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents: 1505
diff changeset
91
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
92 def testOffset(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
93 ae = self.assertEqual
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
94 date = Date("2000-04-17", -5)
1466
0c3546479b52 time should default to local midnight, not GMT
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1361
diff changeset
95 ae(str(date), '2000-04-17.05:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
96 date = Date("01-25", -5)
225
49748e59852a fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
97 y, m, d, x, x, x, x, x, x = time.gmtime(time.time())
1466
0c3546479b52 time should default to local midnight, not GMT
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1361
diff changeset
98 ae(str(date), '%s-01-25.05:00:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
99 date = Date("2000-04-17.03:45", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
100 ae(str(date), '2000-04-17.08:45:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
101 date = Date("08-13.22:13", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
102 ae(str(date), '%s-08-14.03:13:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
103 date = Date("11-07.09:32:43", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
104 ae(str(date), '%s-11-07.14:32:43'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 date = Date("14:25", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
106 ae(str(date), '%s-%02d-%02d.19:25:00'%(y, m, d))
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
107 date = Date("8:47:11", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
108 ae(str(date), '%s-%02d-%02d.13:47:11'%(y, m, d))
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
109
3586
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
110 # just make sure we parse these, m'kay?
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
111 date = Date('-1d')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
112 date = Date('-1w')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
113 date = Date('-1m')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
114 date = Date('-1y')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
115
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
116 def testOffsetRandom(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
117 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
118 # XXX unsure of the usefulness of these, they're pretty random
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
119 date = Date('2000-01-01') + Interval('- 2y 2m')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
120 ae(str(date), '1997-11-01.00:00:00')
861
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
121 date = Date('2000-01-01 - 2y 2m')
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
122 ae(str(date), '1997-11-01.00:00:00')
641
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
123 date = Date('2000-01-01') + Interval('2m')
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
124 ae(str(date), '2000-03-01.00:00:00')
861
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
125 date = Date('2000-01-01 + 2m')
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
126 ae(str(date), '2000-03-01.00:00:00')
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
127
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
128 date = Date('2000-01-01') + Interval('60d')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
129 ae(str(date), '2000-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
130 date = Date('2001-01-01') + Interval('60d')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
131 ae(str(date), '2001-03-02.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
132
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
133 def testOffsetAdd(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
134 ae = self.assertEqual
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
135 date = Date('2000-02-28.23:59:59') + Interval('00:00:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
136 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
137 date = Date('2001-02-28.23:59:59') + Interval('00:00:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
138 ae(str(date), '2001-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
139
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
140 date = Date('2000-02-28.23:58:59') + Interval('00:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
141 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
142 date = Date('2001-02-28.23:58:59') + Interval('00:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
143 ae(str(date), '2001-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
144
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
145 date = Date('2000-02-28.22:58:59') + Interval('01:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
146 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
147 date = Date('2001-02-28.22:58:59') + Interval('01:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
148 ae(str(date), '2001-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
149
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
150 date = Date('2000-02-28.22:58:59') + Interval('00:00:3661')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
151 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
152 date = Date('2001-02-28.22:58:59') + Interval('00:00:3661')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
153 ae(str(date), '2001-03-01.00:00:00')
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
154 date = Date('2001-03-01.00:00:00') + Interval('150y')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
155 ae(str(date), '2151-03-01.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
156
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
157 def testOffsetSub(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
158 ae = self.assertEqual
1941
bcc65c5b86e6 fixed date arithmetic to not allow day-of-month == 0 [SF#853306]
Richard Jones <richard@users.sourceforge.net>
parents: 1930
diff changeset
159 date = Date('2000-12-01') - Interval('- 1d')
bcc65c5b86e6 fixed date arithmetic to not allow day-of-month == 0 [SF#853306]
Richard Jones <richard@users.sourceforge.net>
parents: 1930
diff changeset
160
641
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
161 date = Date('2000-01-01') - Interval('- 2y 2m')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
162 ae(str(date), '2002-03-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
163 date = Date('2000-01-01') - Interval('2m')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
164 ae(str(date), '1999-11-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
165
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
166 date = Date('2000-03-01') - Interval('60d')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
167 ae(str(date), '2000-01-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
168 date = Date('2001-03-02') - Interval('60d')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
169 ae(str(date), '2001-01-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
170
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
171 date = Date('2000-02-29.00:00:00') - Interval('00:00:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
172 ae(str(date), '2000-02-28.23:59:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
173 date = Date('2001-03-01.00:00:00') - Interval('00:00:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
174 ae(str(date), '2001-02-28.23:59:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
175
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
176 date = Date('2000-02-29.00:00:00') - Interval('00:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
177 ae(str(date), '2000-02-28.23:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
178 date = Date('2001-03-01.00:00:00') - Interval('00:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
179 ae(str(date), '2001-02-28.23:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
180
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
181 date = Date('2000-02-29.00:00:00') - Interval('01:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
182 ae(str(date), '2000-02-28.22:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
183 date = Date('2001-03-01.00:00:00') - Interval('01:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
184 ae(str(date), '2001-02-28.22:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
185
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
186 date = Date('2000-02-29.00:00:00') - Interval('00:00:3661')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
187 ae(str(date), '2000-02-28.22:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
188 date = Date('2001-03-01.00:00:00') - Interval('00:00:3661')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
189 ae(str(date), '2001-02-28.22:58:59')
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
190 date = Date('2001-03-01.00:00:00') - Interval('150y')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
191 ae(str(date), '1851-03-01.00:00:00')
641
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
192
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
193 def testDateLocal(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
194 ae = self.assertEqual
1318
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
195 date = Date("02:42:20")
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
196 date = date.local(10)
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
197 y, m, d, x, x, x, x, x, x = time.gmtime(time.time())
1318
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
198 ae(str(date), '%s-%02d-%02d.12:42:20'%(y, m, d))
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
199
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
200 def testIntervalInit(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
201 ae = self.assertEqual
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
202 ae(str(Interval('3y')), '+ 3y')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
203 ae(str(Interval('2 y 1 m')), '+ 2y 1m')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
204 ae(str(Interval('1m 25d')), '+ 1m 25d')
134
d3ffcf862fb7 Fixed bug in unit test ;)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
205 ae(str(Interval('-2w 3 d ')), '- 17d')
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
206 ae(str(Interval(' - 1 d 2:50 ')), '- 1d 2:50')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
207 ae(str(Interval(' 14:00 ')), '+ 14:00')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
208 ae(str(Interval(' 0:04:33 ')), '+ 0:04:33')
2982
22f16d0646ce oops! error in recently added test
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2980
diff changeset
209 ae(str(Interval(8.*3600)), '+ 8:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
210
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
211 def testIntervalInitDate(self):
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
212 ae = self.assertEqual
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
213 now = Date('.')
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
214 now.hour = now.minute = now.second = 0
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
215 then = now + Interval('2d')
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
216 ae((Interval(str(then))), Interval('- 2d'))
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
217 then = now - Interval('2d')
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
218 ae(Interval(str(then)), Interval('+ 2d'))
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
219
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
220 def testIntervalAddMonthBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
221 # force the transition over a month boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
222 now = Date('2003-10-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
223 then = now + Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
224 self.assertEqual(str(then), '2003-11-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
225 now = Date('2004-02-28.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
226 then = now + Interval('1d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
227 self.assertEqual(str(then), '2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
228 now = Date('2003-02-28.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
229 then = now + Interval('1d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
230 self.assertEqual(str(then), '2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
231 now = Date('2003-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
232 then = now + Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
233 self.assertEqual(str(then), '2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
234 now = Date('2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
235 then = now + Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
236 self.assertEqual(str(then), '2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
237
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
238 def testIntervalSubtractMonthBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
239 # force the transition over a month boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
240 now = Date('2003-11-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
241 then = now - Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
242 self.assertEqual(str(then), '2003-10-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
243 now = Date('2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
244 then = now - Interval('1d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
245 self.assertEqual(str(then), '2004-02-28.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
246 now = Date('2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
247 then = now - Interval('1d')
1885
deba54ed724f Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1884
diff changeset
248 self.assertEqual(str(then), '2003-02-28.00:00:00')
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
249 now = Date('2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
250 then = now - Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
251 self.assertEqual(str(then), '2003-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
252 now = Date('2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
253 then = now - Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
254 self.assertEqual(str(then), '2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
255
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
256 def testIntervalAddYearBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
257 # force the transition over a year boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
258 now = Date('2003-12-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
259 then = now + Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
260 self.assertEqual(str(then), '2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
261 now = Date('2003-01-01.00:00:00')
1885
deba54ed724f Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1884
diff changeset
262 then = now + Interval('365d')
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
263 self.assertEqual(str(then), '2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
264 now = Date('2004-01-01.00:00:00')
1885
deba54ed724f Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1884
diff changeset
265 then = now + Interval('366d')
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
266 self.assertEqual(str(then), '2005-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
267
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
268 def testIntervalSubtractYearBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
269 # force the transition over a year boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
270 now = Date('2003-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
271 then = now - Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
272 self.assertEqual(str(then), '2002-12-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
273 now = Date('2004-02-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
274 then = now - Interval('365d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
275 self.assertEqual(str(then), '2003-02-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
276 now = Date('2005-02-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
277 then = now - Interval('365d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
278 self.assertEqual(str(then), '2004-02-02.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
279
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
280 def testDateSubtract(self):
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
281 # These are thoroughly broken right now.
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
282 i = Date('2003-03-15.00:00:00') - Date('2003-03-10.00:00:00')
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
283 self.assertEqual(i, Interval('5d'))
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
284 i = Date('2003-02-01.00:00:00') - Date('2003-03-01.00:00:00')
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
285 self.assertEqual(i, Interval('-28d'))
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
286 i = Date('2003-03-01.00:00:00') - Date('2003-02-01.00:00:00')
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
287 self.assertEqual(i, Interval('28d'))
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
288 i = Date('2003-03-03.00:00:00') - Date('2003-02-01.00:00:00')
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
289 self.assertEqual(i, Interval('30d'))
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
290 i = Date('2003-03-03.00:00:00') - Date('2002-02-01.00:00:00')
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
291 self.assertEqual(i, Interval('395d'))
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
292 i = Date('2003-03-03.00:00:00') - Date('2003-04-01.00:00:00')
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
293 self.assertEqual(i, Interval('-29d'))
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
294 i = Date('2003-03-01.00:00:00') - Date('2003-02-01.00:00:00')
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
295 self.assertEqual(i, Interval('28d'))
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
296 # force the transition over a year boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
297 i = Date('2003-01-01.00:00:00') - Date('2002-01-01.00:00:00')
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
298 self.assertEqual(i, Interval('365d'))
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
299 i = Date('1952-01-01') - Date('1953-01-01')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
300 self.assertEqual(i, Interval('-366d'))
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
301 i = Date('1953-01-01') - Date('1952-01-01')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
302 self.assertEqual(i, Interval('366d'))
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
303
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
304 def testIntervalAdd(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
305 ae = self.assertEqual
1268
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
306 ae(str(Interval('1y') + Interval('1y')), '+ 2y')
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
307 ae(str(Interval('1y') + Interval('1m')), '+ 1y 1m')
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
308 ae(str(Interval('1y') + Interval('2:40')), '+ 1y 2:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
309 ae(str(Interval('1y') + Interval('- 1y')), '00:00')
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
310 ae(str(Interval('- 1y') + Interval('1y')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
311 ae(str(Interval('- 1y') + Interval('- 1y')), '- 2y')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
312 ae(str(Interval('1y') + Interval('- 1m')), '+ 11m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
313 ae(str(Interval('1:00') + Interval('1:00')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
314 ae(str(Interval('0:50') + Interval('0:50')), '+ 1:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
315 ae(str(Interval('1:50') + Interval('- 1:50')), '00:00')
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
316 ae(str(Interval('- 1:50') + Interval('1:50')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
317 ae(str(Interval('- 1:50') + Interval('- 1:50')), '- 3:40')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
318 ae(str(Interval('1:59:59') + Interval('00:00:01')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
319 ae(str(Interval('2:00') + Interval('- 00:00:01')), '+ 1:59:59')
1268
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
320
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
321 def testIntervalSub(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
322 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
323 ae(str(Interval('1y') - Interval('- 1y')), '+ 2y')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
324 ae(str(Interval('1y') - Interval('- 1m')), '+ 1y 1m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
325 ae(str(Interval('1y') - Interval('- 2:40')), '+ 1y 2:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
326 ae(str(Interval('1y') - Interval('1y')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
327 ae(str(Interval('1y') - Interval('1m')), '+ 11m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
328 ae(str(Interval('1:00') - Interval('- 1:00')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
329 ae(str(Interval('0:50') - Interval('- 0:50')), '+ 1:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
330 ae(str(Interval('1:50') - Interval('1:50')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
331 ae(str(Interval('1:59:59') - Interval('- 00:00:01')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
332 ae(str(Interval('2:00') - Interval('00:00:01')), '+ 1:59:59')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
333
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
334 def testOverflow(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
335 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
336 ae(fixTimeOverflow((1,0,0,0, 0, 0, 60)), (1,0,0,0, 0, 1, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
337 ae(fixTimeOverflow((1,0,0,0, 0, 0, 100)), (1,0,0,0, 0, 1, 40))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
338 ae(fixTimeOverflow((1,0,0,0, 0, 0, 60*60)), (1,0,0,0, 1, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
339 ae(fixTimeOverflow((1,0,0,0, 0, 0, 24*60*60)), (1,0,0,1, 0, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
340 ae(fixTimeOverflow((1,0,0,0, 0, 0, -1)), (-1,0,0,0, 0, 0, 1))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
341 ae(fixTimeOverflow((1,0,0,0, 0, 0, -100)), (-1,0,0,0, 0, 1, 40))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
342 ae(fixTimeOverflow((1,0,0,0, 0, 0, -60*60)), (-1,0,0,0, 1, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
343 ae(fixTimeOverflow((1,0,0,0, 0, 0, -24*60*60)), (-1,0,0,1, 0, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
344 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 1)), (-1,0,0,0, 0, 0, 1))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
345 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 100)), (-1,0,0,0, 0, 1, 40))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
346 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 60*60)), (-1,0,0,0, 1, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
347 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 24*60*60)), (-1,0,0,1, 0, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
348
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
349 def testDivision(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
350 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
351 ae(str(Interval('1y')/2), '+ 6m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
352 ae(str(Interval('1:00')/2), '+ 0:30')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
353 ae(str(Interval('00:01')/2), '+ 0:00:30')
1361
b94cc62090be reminder comments for where we need new tests
Richard Jones <richard@users.sourceforge.net>
parents: 1318
diff changeset
354
1494
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
355 def testSorting(self):
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
356 ae = self.assertEqual
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
357 i1 = Interval('1y')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
358 i2 = Interval('1d')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
359 l = [i1, i2]; l.sort()
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
360 ae(l, [i2, i1])
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
361 l = [i2, i1]; l.sort()
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
362 ae(l, [i2, i1])
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
363 i1 = Interval('- 2d')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
364 i2 = Interval('1d')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
365 l = [i1, i2]; l.sort()
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
366 ae(l, [i1, i2])
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
367
1505
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
368 i1 = Interval("1:20")
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
369 i2 = Interval("2d")
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
370 i3 = Interval("3:30")
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
371 l = [i1, i2, i3]; l.sort()
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
372 ae(l, [i1, i3, i2])
1494
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
373
1597
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
374 def testGranularity(self):
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
375 ae = self.assertEqual
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
376 ae(str(Date('2003-2-12', add_granularity=1)), '2003-02-12.23:59:59')
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
377 ae(str(Date('2003-1-1.23:00', add_granularity=1)), '2003-01-01.23:00:59')
1599
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
378 ae(str(Date('2003', add_granularity=1)), '2003-12-31.23:59:59')
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
379 ae(str(Date('2003-5', add_granularity=1)), '2003-05-31.23:59:59')
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
380 ae(str(Date('2003-12', add_granularity=1)), '2003-12-31.23:59:59')
1597
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
381 ae(str(Interval('+1w', add_granularity=1)), '+ 14d')
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
382 ae(str(Interval('-2m 3w', add_granularity=1)), '- 2m 14d')
2980
e28f047f87fa Interval.from_seconds() produces a buggy output with float argument
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2702
diff changeset
383
1930
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
384 def testIntervalPretty(self):
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
385 def ae(spec, pretty):
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
386 self.assertEqual(Interval(spec).pretty(), pretty)
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
387 ae('2y', 'in 2 years')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
388 ae('1y', 'in 1 year')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
389 ae('2m', 'in 2 months')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
390 ae('1m 30d', 'in 2 months')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
391 ae('60d', 'in 2 months')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
392 ae('59d', 'in 1 month')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
393 ae('1m', 'in 1 month')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
394 ae('29d', 'in 1 month')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
395 ae('28d', 'in 4 weeks')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
396 ae('8d', 'in 1 week')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
397 ae('7d', 'in 7 days')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
398 ae('1w', 'in 7 days')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
399 ae('2d', 'in 2 days')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
400 ae('1d', 'tomorrow')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
401 ae('02:00:00', 'in 2 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
402 ae('01:59:00', 'in 1 3/4 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
403 ae('01:45:00', 'in 1 3/4 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
404 ae('01:30:00', 'in 1 1/2 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
405 ae('01:29:00', 'in 1 1/4 hours')
2980
e28f047f87fa Interval.from_seconds() produces a buggy output with float argument
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2702
diff changeset
406 ae('01:00:00', 'in an hour')
1930
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
407 ae('00:30:00', 'in 1/2 an hour')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
408 ae('00:15:00', 'in 1/4 hour')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
409 ae('00:02:00', 'in 2 minutes')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
410 ae('00:01:00', 'in 1 minute')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
411 ae('00:00:30', 'in a moment')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
412 ae('-00:00:30', 'just now')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
413 ae('-1d', 'yesterday')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
414 ae('-1y', '1 year ago')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
415 ae('-2y', '2 years ago')
1597
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
416
2702
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
417 def testPyDatetime(self):
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
418 d = datetime.datetime.now()
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
419 Date(d)
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
420 toomuch = datetime.MAXYEAR + 1
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
421 self.assertRaises(ValueError, Date, (toomuch, 1, 1, 0, 0, 0, 0, 1, -1))
2702
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
422
3622
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
423 def testSimpleTZ(self):
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
424 ae = self.assertEqual
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
425 # local to utc
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
426 date = Date('2006-04-04.12:00:00', 2)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
427 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
428 # utc to local
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
429 date = Date('2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
430 date = date.local(2)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
431 ae(str(date), '2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
432 # from Date instance
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
433 date = Date('2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
434 date = Date(date, 2)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
435 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
436
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
437 def testTimestamp(self):
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
438 ae = self.assertEqual
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
439 date = Date('2038')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
440 ae(date.timestamp(), 2145916800)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
441 date = Date('1902')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
442 ae(date.timestamp(), -2145916800)
3824
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
443 date = Date(time.gmtime(0))
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
444 ae(date.timestamp(), 0)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
445 ae(str(date), '1970-01-01.00:00:00')
3824
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
446 date = Date(time.gmtime(0x7FFFFFFF))
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
447 ae(date.timestamp(), 2147483647)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
448 ae(str(date), '2038-01-19.03:14:07')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
449 date = Date('1901-12-13.20:45:52')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
450 ae(date.timestamp(), -0x80000000L)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
451 ae(str(date), '1901-12-13.20:45:52')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
452 date = Date('9999')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
453 ae (date.timestamp(), 253370764800.0)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
454 date = Date('0033')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
455 ae (date.timestamp(), -61125753600.0)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
456 ae(str(date), '0033-01-01.00:00:00')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
457
3622
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
458 class TimezoneTestCase(unittest.TestCase):
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
459
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
460 def testTZ(self):
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
461 ae = self.assertEqual
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
462 tz = 'Europe/Warsaw'
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
463
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
464 # local to utc, DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
465 date = Date('2006-04-04.12:00:00', tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
466 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
467
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
468 # local to utc, no DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
469 date = Date('2006-01-01.12:00:00', tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
470 ae(str(date), '2006-01-01.11:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
471
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
472 # utc to local, DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
473 date = Date('2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
474 date = date.local(tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
475 ae(str(date), '2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
476
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
477 # utc to local, no DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
478 date = Date('2006-01-01.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
479 date = date.local(tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
480 ae(str(date), '2006-01-01.11:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
481
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
482 date = Date('2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
483 date = Date(date, tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
484 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
485 date = Date('2006-01-01.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
486 date = Date(date, tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
487 ae(str(date), '2006-01-01.11:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
488
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
489
3952
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
490 class RangeTestCase(unittest.TestCase):
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
491
3952
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
492 def testRange(self):
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
493 ae = self.assertEqual
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
494 r = Range('2006', Date)
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
495 ae(str(r.from_value), '2006-01-01.00:00:00')
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
496 ae(str(r.to_value), '2006-12-31.23:59:59')
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
497 for i in range(1, 13):
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
498 r = Range('2006-%02d'%i, Date)
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
499 ae(str(r.from_value), '2006-%02d-01.00:00:00'%i)
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
500 ae(str(r.to_value), '2006-%02d-%02d.23:59:59'%(i,
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
501 calendar.mdays[i]))
3952
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
502
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
503
1873
f63aa57386b0 Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents: 1599
diff changeset
504 def test_suite():
f63aa57386b0 Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents: 1599
diff changeset
505 suite = unittest.TestSuite()
f63aa57386b0 Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents: 1599
diff changeset
506 suite.addTest(unittest.makeSuite(DateTestCase))
3952
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
507 suite.addTest(unittest.makeSuite(RangeTestCase))
3622
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
508 try:
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
509 import pytz
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
510 except ImportError:
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
511 pass
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
512 else:
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
513 suite.addTest(unittest.makeSuite(TimezoneTestCase))
1873
f63aa57386b0 Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents: 1599
diff changeset
514 return suite
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
515
1873
f63aa57386b0 Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents: 1599
diff changeset
516 if __name__ == '__main__':
f63aa57386b0 Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents: 1599
diff changeset
517 runner = unittest.TextTestRunner()
f63aa57386b0 Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents: 1599
diff changeset
518 unittest.main(testRunner=runner)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
519
3208
d4d58c36d0bf test invalid tuple handling
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2982
diff changeset
520 # vim: set filetype=python sts=4 sw=4 et si :

Roundup Issue Tracker: http://roundup-tracker.org/