Mercurial > p > roundup > code
annotate test/test_dates.py @ 1894:41ad8b781232
Date - Date works again.
Note that it only produces Intervals with days, hours, minutes and
seconds. Making it produce years and months is a lot more work.
bugfix candidate
| author | Anthony Baxter <anthonybaxter@users.sourceforge.net> |
|---|---|
| date | Tue, 04 Nov 2003 12:35:47 +0000 |
| parents | e3cff1bb1b86 |
| children | 71056b09f2bf |
| 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. |
|
d45384bc6420
Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents:
134
diff
changeset
|
17 # |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
18 # $Id: test_dates.py,v 1.29 2003-11-04 12:35:47 anthonybaxter Exp $ |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
19 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
20 import unittest, time |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
21 |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
22 from roundup.date import Date, Interval, Range, fixTimeOverflow |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
23 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
24 class DateTestCase(unittest.TestCase): |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
25 def testDateInterval(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
26 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
27 date = Date("2000-06-26.00:34:02 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
28 ae(str(date), '2000-06-28.00:34:02') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
29 date = Date("2000-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
30 ae(str(date), '2000-02-29.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
31 date = Date("2001-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
32 ae(str(date), '2001-03-01.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
33 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
34 def testDate(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
35 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
36 date = Date("2000-04-17") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
37 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
|
38 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
|
39 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
|
40 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
|
41 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
|
42 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
|
43 ae(str(date), '2000-04-17.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
44 date = Date("01-25") |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
45 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
|
46 ae(str(date), '%s-01-25.00:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
47 date = Date("2000-04-17.03:45") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
48 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
|
49 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
|
50 ae(str(date), '2000-04-17.03:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 date = Date("08-13.22:13") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
52 ae(str(date), '%s-08-13.22:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 date = Date("11-07.09:32:43") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
54 ae(str(date), '%s-11-07.09:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 date = Date("14:25") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
56 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
|
57 date = Date("8:47:11") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
58 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
|
59 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
|
60 ae(str(Date('2004-06')), '2004-06-01.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
61 |
|
1535
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
62 def testDateError(self): |
|
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
63 self.assertRaises(ValueError, Date, "12") |
|
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
64 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
65 def testOffset(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
66 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 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
|
68 ae(str(date), '2000-04-17.05:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 date = Date("01-25", -5) |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
70 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
|
71 ae(str(date), '%s-01-25.05:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
72 date = Date("2000-04-17.03:45", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
73 ae(str(date), '2000-04-17.08:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
74 date = Date("08-13.22:13", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
75 ae(str(date), '%s-08-14.03:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 date = Date("11-07.09:32:43", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
77 ae(str(date), '%s-11-07.14:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 date = Date("14:25", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
79 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
|
80 date = Date("8:47:11", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
81 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
|
82 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
83 def testOffsetRandom(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
84 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
85 # 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
|
86 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
|
87 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
|
88 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
|
89 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
|
90 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
|
91 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
|
92 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
|
93 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
|
94 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
95 date = Date('2000-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
96 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
|
97 date = Date('2001-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
98 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
|
99 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
100 def testOffsetAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
101 ae = self.assertEqual |
|
640
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
102 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
|
103 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
|
104 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
|
105 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
|
106 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
107 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
|
108 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
|
109 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
|
110 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
|
111 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
112 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
|
113 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
|
114 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
|
115 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
|
116 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
117 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
|
118 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
|
119 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
|
120 ae(str(date), '2001-03-01.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
121 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
122 def testOffsetSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
123 ae = self.assertEqual |
|
641
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
124 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
|
125 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
|
126 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
|
127 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
|
128 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
129 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
|
130 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
|
131 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
|
132 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
|
133 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
134 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
|
135 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
|
136 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
|
137 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
|
138 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
139 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
|
140 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
|
141 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
|
142 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
|
143 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
144 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
|
145 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
|
146 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
|
147 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
|
148 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
149 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
|
150 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
|
151 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
|
152 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
|
153 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
154 def testDateLocal(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
155 ae = self.assertEqual |
|
1318
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
156 date = Date("02:42:20") |
|
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
157 date = date.local(10) |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
158 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
|
159 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
|
160 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
161 def testIntervalInit(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
162 ae = self.assertEqual |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
163 ae(str(Interval('3y')), '+ 3y') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
164 ae(str(Interval('2 y 1 m')), '+ 2y 1m') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
165 ae(str(Interval('1m 25d')), '+ 1m 25d') |
|
134
d3ffcf862fb7
Fixed bug in unit test ;)
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
166 ae(str(Interval('-2w 3 d ')), '- 17d') |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
167 ae(str(Interval(' - 1 d 2:50 ')), '- 1d 2:50') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
168 ae(str(Interval(' 14:00 ')), '+ 14:00') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
169 ae(str(Interval(' 0:04:33 ')), '+ 0:04:33') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
170 |
|
1537
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
171 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
|
172 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
|
173 now = Date('.') |
|
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
174 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
|
175 then = now + Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
176 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
|
177 then = now - Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
178 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
|
179 |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
180 def testIntervalAddMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
181 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
182 now = Date('2003-10-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
183 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
184 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
|
185 now = Date('2004-02-28.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
186 then = now + Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
187 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
|
188 now = Date('2003-02-28.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
189 then = now + Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
190 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
|
191 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
192 then = now + Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
193 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
|
194 now = Date('2004-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
195 then = now + Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
196 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
|
197 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
198 def testIntervalSubtractMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
199 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
200 now = Date('2003-11-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
201 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
202 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
|
203 now = Date('2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
204 then = now - Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
205 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
|
206 now = Date('2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
207 then = now - Interval('1d') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
208 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
|
209 now = Date('2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
210 then = now - Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
211 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
|
212 now = Date('2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
213 then = now - Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
214 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
|
215 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
216 def testIntervalAddYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
217 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
218 now = Date('2003-12-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
219 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
220 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
|
221 now = Date('2003-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
222 then = now + Interval('365d') |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
223 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
|
224 now = Date('2004-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
225 then = now + Interval('366d') |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
226 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
|
227 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
228 def testIntervalSubtractYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
229 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
230 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
231 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
232 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
|
233 now = Date('2004-02-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
234 then = now - Interval('365d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
235 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
|
236 now = Date('2005-02-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
237 then = now - Interval('365d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
238 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
|
239 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
240 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
|
241 # 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
|
242 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
|
243 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
|
244 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
|
245 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
|
246 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
|
247 self.assertEqual(i, Interval('28d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
248 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
|
249 self.assertEqual(i, Interval('30d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
250 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
|
251 self.assertEqual(i, Interval('395d')) |
|
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
252 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
|
253 self.assertEqual(i, Interval('-29d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
254 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
|
255 self.assertEqual(i, Interval('28d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
256 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
257 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
|
258 self.assertEqual(i, Interval('365d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
259 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
260 def testIntervalAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
261 ae = self.assertEqual |
|
1268
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
262 ae(str(Interval('1y') + Interval('1y')), '+ 2y') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
263 ae(str(Interval('1y') + Interval('1m')), '+ 1y 1m') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
264 ae(str(Interval('1y') + Interval('2:40')), '+ 1y 2:40') |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
265 ae(str(Interval('1y') + Interval('- 1y')), '') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
266 ae(str(Interval('- 1y') + Interval('1y')), '') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
267 ae(str(Interval('- 1y') + Interval('- 1y')), '- 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
268 ae(str(Interval('1y') + Interval('- 1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
269 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
|
270 ae(str(Interval('0:50') + Interval('0:50')), '+ 1:40') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
271 ae(str(Interval('1:50') + Interval('- 1:50')), '') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
272 ae(str(Interval('- 1:50') + Interval('1:50')), '') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
273 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
|
274 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
|
275 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
|
276 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
277 def testIntervalSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
278 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
279 ae(str(Interval('1y') - Interval('- 1y')), '+ 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
280 ae(str(Interval('1y') - Interval('- 1m')), '+ 1y 1m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
281 ae(str(Interval('1y') - Interval('- 2:40')), '+ 1y 2:40') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
282 ae(str(Interval('1y') - Interval('1y')), '') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
283 ae(str(Interval('1y') - Interval('1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
284 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
|
285 ae(str(Interval('0:50') - Interval('- 0:50')), '+ 1:40') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
286 ae(str(Interval('1:50') - Interval('1:50')), '') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
287 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
|
288 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
|
289 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
290 def testOverflow(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
291 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
292 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
|
293 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
|
294 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
|
295 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
|
296 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
|
297 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
|
298 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
|
299 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
|
300 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
|
301 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
|
302 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
|
303 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
|
304 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
305 def testDivision(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
306 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
307 ae(str(Interval('1y')/2), '+ 6m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
308 ae(str(Interval('1:00')/2), '+ 0:30') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
309 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
|
310 |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
311 def testSorting(self): |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
312 ae = self.assertEqual |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
313 i1 = Interval('1y') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
314 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
315 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
316 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
317 l = [i2, i1]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
318 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
319 i1 = Interval('- 2d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
320 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
321 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
322 ae(l, [i1, i2]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
323 |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
324 i1 = Interval("1:20") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
325 i2 = Interval("2d") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
326 i3 = Interval("3:30") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
327 l = [i1, i2, i3]; l.sort() |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
328 ae(l, [i1, i3, i2]) |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
329 |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
330 def testGranularity(self): |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
331 ae = self.assertEqual |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
332 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
|
333 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
|
334 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
|
335 ae(str(Date('2003-5', add_granularity=1)), '2003-05-31.23:59:59') |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
336 ae(str(Interval('+1w', add_granularity=1)), '+ 14d') |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
337 ae(str(Interval('-2m 3w', add_granularity=1)), '- 2m 14d') |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
338 |
|
1873
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
339 def test_suite(): |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
340 suite = unittest.TestSuite() |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
341 suite.addTest(unittest.makeSuite(DateTestCase)) |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
342 return suite |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
343 |
|
1873
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
344 if __name__ == '__main__': |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
345 runner = unittest.TextTestRunner() |
|
f63aa57386b0
Backend improvements.
Richard Jones <richard@users.sourceforge.net>
parents:
1599
diff
changeset
|
346 unittest.main(testRunner=runner) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
347 |
|
127
0791d13baea7
Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents:
125
diff
changeset
|
348 # vim: set filetype=python ts=4 sw=4 et si |
