Mercurial > p > roundup > code
annotate test/test_dates.py @ 4994:868db43b302a
Remove anypy.sets_
The anypy.sets_ package module is no longer used in the roundup codebase
because python v2.4 is no longer supported. The anypy VERSION has been
bumped to 0.3 to reflect this removal, but the version has probably
never changed when other features were added in the past so this bump
may be pointless.
| author | John Kristensen <john@jerrykan.com> |
|---|---|
| date | Thu, 08 May 2014 18:44:29 +1000 |
| parents | 9cc6d463cfbe |
| children | 380d8d8b30a3 |
| 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 | 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 # |
|
3824
a5fb7698439d
remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3822
diff
changeset
|
18 import unittest |
|
a5fb7698439d
remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3822
diff
changeset
|
19 import time |
|
a5fb7698439d
remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3822
diff
changeset
|
20 import datetime |
|
3953
78dc9b275aeb
New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents:
3952
diff
changeset
|
21 import calendar |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
22 |
|
4407
f6a2bfd351ee
force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents:
4072
diff
changeset
|
23 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
|
24 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
|
25 get_timezone |
|
3953
78dc9b275aeb
New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents:
3952
diff
changeset
|
26 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
28 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
|
29 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
|
30 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
|
31 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
|
32 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
|
33 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
|
34 |
|
f6a2bfd351ee
force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents:
4072
diff
changeset
|
35 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
|
36 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
|
37 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
|
38 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
39 def testDateInterval(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
40 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
41 date = Date("2000-06-26.00:34:02 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
42 ae(str(date), '2000-06-28.00:34:02') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
43 date = Date("2000-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
44 ae(str(date), '2000-02-29.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
45 date = Date("2001-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
46 ae(str(date), '2001-03-01.00:00:00') |
| 4072 | 47 date = Date("2009", add_granularity=True) |
| 48 self.assertRaises(ValueError, Date, ". +30d", add_granularity=True) | |
| 49 | |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
50 def testDate(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
51 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
52 date = Date("2000-04-17") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
53 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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 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
|
59 ae(str(date), '2000-04-17.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 date = Date("01-25") |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
61 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
|
62 ae(str(date), '%s-01-25.00:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
63 date = Date("2000-04-17.03:45") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
64 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
|
65 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
|
66 ae(str(date), '2000-04-17.03:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 date = Date("08-13.22:13") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
68 ae(str(date), '%s-08-13.22:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 date = Date("11-07.09:32:43") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
70 ae(str(date), '%s-11-07.09:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 date = Date("14:25") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
72 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
|
73 date = Date("8:47:11") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
74 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
|
75 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
|
76 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
|
77 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
|
78 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
|
79 |
|
3973
85cbaa50eba1
xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents:
3954
diff
changeset
|
80 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
|
81 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
|
82 |
|
1535
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
83 def testDateError(self): |
|
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
84 self.assertRaises(ValueError, Date, "12") |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
85 # Date cannot handle dates before year 1 |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
86 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
|
87 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
|
88 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 def testOffset(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
90 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
91 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
|
92 ae(str(date), '2000-04-17.05:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 date = Date("01-25", -5) |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
94 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
|
95 ae(str(date), '%s-01-25.05:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
96 date = Date("2000-04-17.03:45", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
97 ae(str(date), '2000-04-17.08:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
98 date = Date("08-13.22:13", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
99 ae(str(date), '%s-08-14.03:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
100 date = Date("11-07.09:32:43", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
101 ae(str(date), '%s-11-07.14:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
102 date = Date("14:25", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
103 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
|
104 date = Date("8:47:11", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
105 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
|
106 |
|
3586
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
107 # 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
|
108 date = Date('-1d') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
109 date = Date('-1w') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
110 date = Date('-1m') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
111 date = Date('-1y') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
112 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
113 def testOffsetRandom(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
114 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
115 # 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
|
116 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
|
117 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
|
118 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
|
119 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
|
120 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
|
121 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
|
122 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
|
123 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
|
124 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
125 date = Date('2000-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
126 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
|
127 date = Date('2001-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
128 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
|
129 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
130 def testOffsetAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
131 ae = self.assertEqual |
|
640
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
132 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
|
133 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
|
134 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
|
135 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
|
136 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
137 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
|
138 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
|
139 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
|
140 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
|
141 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
142 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
|
143 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
|
144 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
|
145 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
|
146 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
147 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
|
148 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
|
149 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
|
150 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
|
151 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
|
152 ae(str(date), '2151-03-01.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
153 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
154 def testOffsetSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
155 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
|
156 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
|
157 |
|
641
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
158 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
|
159 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
|
160 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
|
161 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
|
162 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
163 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
|
164 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
|
165 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
|
166 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
|
167 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
168 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
|
169 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
|
170 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
|
171 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
|
172 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
173 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
|
174 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
|
175 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
|
176 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
|
177 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
178 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
|
179 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
|
180 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
|
181 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
|
182 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
183 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
|
184 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
|
185 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
|
186 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
|
187 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
|
188 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
|
189 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
190 def testDateLocal(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
191 ae = self.assertEqual |
|
1318
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
192 date = Date("02:42:20") |
|
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
193 date = date.local(10) |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
194 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
|
195 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
|
196 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
197 def testIntervalInit(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
198 ae = self.assertEqual |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
199 ae(str(Interval('3y')), '+ 3y') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
200 ae(str(Interval('2 y 1 m')), '+ 2y 1m') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
201 ae(str(Interval('1m 25d')), '+ 1m 25d') |
|
134
d3ffcf862fb7
Fixed bug in unit test ;)
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
202 ae(str(Interval('-2w 3 d ')), '- 17d') |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
203 ae(str(Interval(' - 1 d 2:50 ')), '- 1d 2:50') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
204 ae(str(Interval(' 14:00 ')), '+ 14:00') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
205 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
|
206 ae(str(Interval(8.*3600)), '+ 8:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
207 |
|
1537
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
208 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
|
209 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
|
210 now = Date('.') |
|
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
211 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
|
212 then = now + Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
213 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
|
214 then = now - Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
215 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
|
216 |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
217 def testIntervalAddMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
218 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
219 now = Date('2003-10-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
220 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
221 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
|
222 now = Date('2004-02-28.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
223 then = now + Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
224 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
|
225 now = Date('2003-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), '2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
228 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
229 then = now + Interval('59d') |
|
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('2004-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), '2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
234 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
235 def testIntervalSubtractMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
236 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
237 now = Date('2003-11-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
238 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
239 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
|
240 now = Date('2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
241 then = now - Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
242 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
|
243 now = Date('2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
244 then = now - Interval('1d') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
245 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
|
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('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
248 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
|
249 now = Date('2004-02-29.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), '2004-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
252 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
253 def testIntervalAddYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
254 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
255 now = Date('2003-12-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
256 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
257 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
|
258 now = Date('2003-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
259 then = now + Interval('365d') |
|
1884
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('2004-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
262 then = now + Interval('366d') |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
263 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
|
264 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
265 def testIntervalSubtractYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
266 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
267 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
268 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
269 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
|
270 now = Date('2004-02-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
271 then = now - Interval('365d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
272 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
|
273 now = Date('2005-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), '2004-02-02.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
276 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
277 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
|
278 # 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
|
279 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
|
280 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
|
281 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
|
282 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
|
283 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
|
284 self.assertEqual(i, Interval('28d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
285 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
|
286 self.assertEqual(i, Interval('30d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
287 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
|
288 self.assertEqual(i, Interval('395d')) |
|
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
289 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
|
290 self.assertEqual(i, Interval('-29d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
291 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
|
292 self.assertEqual(i, Interval('28d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
293 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
294 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
|
295 self.assertEqual(i, Interval('365d')) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
296 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
|
297 self.assertEqual(i, Interval('-366d')) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
298 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
|
299 self.assertEqual(i, Interval('366d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
300 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
301 def testIntervalAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
302 ae = self.assertEqual |
|
1268
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
303 ae(str(Interval('1y') + Interval('1y')), '+ 2y') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
304 ae(str(Interval('1y') + Interval('1m')), '+ 1y 1m') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
305 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
|
306 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
|
307 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
|
308 ae(str(Interval('- 1y') + Interval('- 1y')), '- 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
309 ae(str(Interval('1y') + Interval('- 1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
310 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
|
311 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
|
312 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
|
313 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
|
314 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
|
315 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
|
316 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
|
317 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
318 def testIntervalSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
319 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
320 ae(str(Interval('1y') - Interval('- 1y')), '+ 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
321 ae(str(Interval('1y') - Interval('- 1m')), '+ 1y 1m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
322 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
|
323 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
|
324 ae(str(Interval('1y') - Interval('1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
325 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
|
326 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
|
327 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
|
328 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
|
329 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
|
330 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
331 def testOverflow(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
332 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
333 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
|
334 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
|
335 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
|
336 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
|
337 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
|
338 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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 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
|
344 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
|
345 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
346 def testDivision(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
347 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
348 ae(str(Interval('1y')/2), '+ 6m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
349 ae(str(Interval('1:00')/2), '+ 0:30') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
350 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
|
351 |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
352 def testSorting(self): |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
353 ae = self.assertEqual |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
354 i1 = Interval('1y') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
355 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
356 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
357 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
358 l = [i2, i1]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
359 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
360 i1 = Interval('- 2d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
361 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
362 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
363 ae(l, [i1, i2]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
364 |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
365 i1 = Interval("1:20") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
366 i2 = Interval("2d") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
367 i3 = Interval("3:30") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
368 l = [i1, i2, i3]; l.sort() |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
369 ae(l, [i1, i3, i2]) |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
370 |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
371 def testGranularity(self): |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
372 ae = self.assertEqual |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
373 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
|
374 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
|
375 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
|
376 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
|
377 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
|
378 ae(str(Interval('+1w', add_granularity=1)), '+ 14d') |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
379 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
|
380 |
|
1930
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
381 def testIntervalPretty(self): |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
382 def ae(spec, pretty): |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
383 self.assertEqual(Interval(spec).pretty(), pretty) |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
384 ae('2y', 'in 2 years') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
385 ae('1y', 'in 1 year') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
386 ae('2m', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
387 ae('1m 30d', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
388 ae('60d', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
389 ae('59d', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
390 ae('1m', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
391 ae('29d', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
392 ae('28d', 'in 4 weeks') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
393 ae('8d', 'in 1 week') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
394 ae('7d', 'in 7 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
395 ae('1w', 'in 7 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
396 ae('2d', 'in 2 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
397 ae('1d', 'tomorrow') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
398 ae('02:00:00', 'in 2 hours') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
399 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
|
400 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
|
401 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
|
402 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
|
403 ae('01:00:00', 'in an hour') |
|
1930
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
404 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
|
405 ae('00:15:00', 'in 1/4 hour') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
406 ae('00:02:00', 'in 2 minutes') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
407 ae('00:01:00', 'in 1 minute') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
408 ae('00:00:30', 'in a moment') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
409 ae('-00:00:30', 'just now') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
410 ae('-1d', 'yesterday') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
411 ae('-1y', '1 year ago') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
412 ae('-2y', '2 years ago') |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
413 |
|
2702
eb4e7b8d52a2
handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents:
2217
diff
changeset
|
414 def testPyDatetime(self): |
|
eb4e7b8d52a2
handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents:
2217
diff
changeset
|
415 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
|
416 Date(d) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
417 toomuch = datetime.MAXYEAR + 1 |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
418 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
|
419 |
|
3622
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
420 def testSimpleTZ(self): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
421 ae = self.assertEqual |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
422 # local to utc |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
423 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
|
424 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
|
425 # utc to local |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
426 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
|
427 date = date.local(2) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
428 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
|
429 # from Date instance |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
430 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
|
431 date = Date(date, 2) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
432 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
|
433 |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
434 def testTimestamp(self): |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
435 ae = self.assertEqual |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
436 date = Date('2038') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
437 ae(date.timestamp(), 2145916800) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
438 date = Date('1902') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
439 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
|
440 date = Date(time.gmtime(0)) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
441 ae(date.timestamp(), 0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
442 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
|
443 date = Date(time.gmtime(0x7FFFFFFF)) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
444 ae(date.timestamp(), 2147483647) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
445 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
|
446 date = Date('1901-12-13.20:45:52') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
447 ae(date.timestamp(), -0x80000000L) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
448 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
|
449 date = Date('9999') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
450 ae (date.timestamp(), 253370764800.0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
451 date = Date('0033') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
452 ae (date.timestamp(), -61125753600.0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
453 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
|
454 |
|
3622
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
455 class TimezoneTestCase(unittest.TestCase): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
456 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
457 def testTZ(self): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
458 ae = self.assertEqual |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
459 tz = 'Europe/Warsaw' |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
460 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
461 # local to utc, DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
462 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
|
463 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
|
464 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
465 # local to utc, no DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
466 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
|
467 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
|
468 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
469 # utc to local, DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
470 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
|
471 date = date.local(tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
472 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
|
473 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
474 # utc to local, no DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
475 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
|
476 date = date.local(tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
477 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
|
478 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
479 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
|
480 date = Date(date, tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
481 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
|
482 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
|
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-01-01.11:00:00') |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
485 |
|
3954
3d5a0a949107
Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents:
3953
diff
changeset
|
486 |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
487 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
|
488 |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
489 def testRange(self): |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
490 ae = self.assertEqual |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
491 r = Range('2006', Date) |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
492 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
|
493 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
|
494 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
|
495 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
|
496 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
|
497 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
|
498 calendar.mdays[i])) |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
499 |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
500 |
|
1873
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
501 def test_suite(): |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
502 suite = unittest.TestSuite() |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
503 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
|
504 suite.addTest(unittest.makeSuite(RangeTestCase)) |
|
3622
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
505 try: |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
506 import pytz |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
507 except ImportError: |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
508 pass |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
509 else: |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
510 suite.addTest(unittest.makeSuite(TimezoneTestCase)) |
|
1873
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
511 return suite |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
512 |
|
1873
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
513 if __name__ == '__main__': |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
514 runner = unittest.TextTestRunner() |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
515 unittest.main(testRunner=runner) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
516 |
|
3208
d4d58c36d0bf
test invalid tuple handling
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2982
diff
changeset
|
517 # vim: set filetype=python sts=4 sw=4 et si : |
