Mercurial > p > roundup > code
annotate test/test_dates.py @ 5548:fea11d05110e
Avoid errors from selecting "no selection" on multilink (issue2550722).
As discussed in issue 2550722 there are various cases where selecting
"no selection" on a multilink can result in inappropriate errors from
Roundup:
* If selecting "no selection" produces a null edit (a value was set in
the multilink in an edit with an error, then removed again, along
with all other changes, in the next form submission), so the page is
rendered from the form contents including the "-<id>" value for "no
selection" for the multilink.
* If creating an item with a nonempty value for a multilink has an
error, and the resubmission changes that multilink to "no selection"
(and this in turn has subcases, according to whether the creation
then succeeds or fails on the resubmission, which need fixes in
different places in the Roundup code).
All of these cases have in common that it is expected and OK to have a
"-<id>" value for a submission for a multilink when <id> is not set in
that multilink in the database (because the original attempt to set
<id> in that multilink had an error), so the hyperdb.py logic to give
an error in that case is thus removed. In the subcase of the second
case where the resubmission with "no selection" has an error, the
templating code tries to produce a menu entry for the "-<id>"
multilink value, which also results in an error, hence the
templating.py change to ignore such values in the list for a
multilink.
| author | Joseph Myers <jsm@polyomino.org.uk> |
|---|---|
| date | Thu, 27 Sep 2018 11:33:01 +0000 |
| parents | 64c4e43fbb84 |
| children | db429c75caec |
| 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 |
|
5036
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
23 import pytest |
|
4407
f6a2bfd351ee
force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents:
4072
diff
changeset
|
24 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
|
25 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
|
26 get_timezone |
|
3953
78dc9b275aeb
New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents:
3952
diff
changeset
|
27 |
|
5036
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
28 try: |
|
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
29 import pytz |
|
5038
c977f3530944
Work-around for pytest.mark.skipif() bug
John Kristensen <john@jerrykan.com>
parents:
5037
diff
changeset
|
30 skip_pytz = lambda func, *args, **kwargs: func |
|
5036
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
31 except ImportError: |
|
5109
43a1f7fe39f5
Improved work-around for pytest markers bug
John Kristensen <john@jerrykan.com>
parents:
5105
diff
changeset
|
32 # FIX: workaround for a bug in pytest.mark.skip(): |
|
43a1f7fe39f5
Improved work-around for pytest markers bug
John Kristensen <john@jerrykan.com>
parents:
5105
diff
changeset
|
33 # https://github.com/pytest-dev/pytest/issues/568 |
|
43a1f7fe39f5
Improved work-around for pytest markers bug
John Kristensen <john@jerrykan.com>
parents:
5105
diff
changeset
|
34 from .pytest_patcher import mark_class |
|
43a1f7fe39f5
Improved work-around for pytest markers bug
John Kristensen <john@jerrykan.com>
parents:
5105
diff
changeset
|
35 skip_pytz = mark_class(pytest.mark.skip(reason="'pytz' not installed")) |
|
5036
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
36 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
37 |
|
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
38 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
|
39 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
|
40 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
|
41 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
|
42 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
|
43 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
|
44 |
|
f6a2bfd351ee
force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents:
4072
diff
changeset
|
45 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
|
46 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
|
47 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
|
48 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
49 def testDateInterval(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
50 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
51 date = Date("2000-06-26.00:34:02 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
52 ae(str(date), '2000-06-28.00:34:02') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
53 date = Date("2000-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
54 ae(str(date), '2000-02-29.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
55 date = Date("2001-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
56 ae(str(date), '2001-03-01.00:00:00') |
| 4072 | 57 date = Date("2009", add_granularity=True) |
| 58 self.assertRaises(ValueError, Date, ". +30d", add_granularity=True) | |
| 59 | |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
60 def testDate(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
61 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
62 date = Date("2000-04-17") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
63 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
|
64 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
|
65 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
|
66 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
|
67 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
|
68 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
|
69 ae(str(date), '2000-04-17.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
70 date = Date("01-25") |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
71 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
|
72 ae(str(date), '%s-01-25.00:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
73 date = Date("2000-04-17.03:45") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
74 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
|
75 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
|
76 ae(str(date), '2000-04-17.03:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
77 date = Date("08-13.22:13") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
78 ae(str(date), '%s-08-13.22:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
79 date = Date("11-07.09:32:43") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
80 ae(str(date), '%s-11-07.09:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
81 date = Date("14:25") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
82 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
|
83 date = Date("8:47:11") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
84 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
|
85 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
|
86 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
|
87 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
|
88 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
|
89 |
|
3973
85cbaa50eba1
xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents:
3954
diff
changeset
|
90 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
|
91 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
|
92 |
|
1535
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
93 def testDateError(self): |
|
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
94 self.assertRaises(ValueError, Date, "12") |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
95 # Date cannot handle dates before year 1 |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
96 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
|
97 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
|
98 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
99 def testOffset(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
100 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
101 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
|
102 ae(str(date), '2000-04-17.05:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
103 date = Date("01-25", -5) |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
104 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
|
105 ae(str(date), '%s-01-25.05:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
106 date = Date("2000-04-17.03:45", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
107 ae(str(date), '2000-04-17.08:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
108 date = Date("08-13.22:13", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
109 ae(str(date), '%s-08-14.03:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
110 date = Date("11-07.09:32:43", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
111 ae(str(date), '%s-11-07.14:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
112 date = Date("14:25", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
113 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
|
114 date = Date("8:47:11", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
115 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
|
116 |
|
3586
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
117 # 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
|
118 date = Date('-1d') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
119 date = Date('-1w') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
120 date = Date('-1m') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
121 date = Date('-1y') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
122 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
123 def testOffsetRandom(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
124 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
125 # 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
|
126 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
|
127 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
|
128 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
|
129 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
|
130 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
|
131 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
|
132 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
|
133 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
|
134 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
135 date = Date('2000-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
136 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
|
137 date = Date('2001-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
138 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
|
139 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
140 def testOffsetAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
141 ae = self.assertEqual |
|
640
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
142 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
|
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.23:59:59') + Interval('00:00: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.23:58:59') + Interval('00:01:01') |
|
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.23:58:59') + Interval('00:01:01') |
|
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') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
151 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
152 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
|
153 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
|
154 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
|
155 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
|
156 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
157 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
|
158 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
|
159 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
|
160 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
|
161 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
|
162 ae(str(date), '2151-03-01.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
163 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
164 def testOffsetSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
165 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
|
166 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
|
167 |
|
641
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
168 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
|
169 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
|
170 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
|
171 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
|
172 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
173 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
|
174 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
|
175 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
|
176 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
|
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('00:00: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.23:59: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('00:00: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.23:59: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:01:01') |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
184 ae(str(date), '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
|
185 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
|
186 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
|
187 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
188 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
|
189 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
|
190 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
|
191 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
|
192 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
193 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
|
194 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
|
195 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
|
196 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
|
197 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
|
198 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
|
199 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
200 def testDateLocal(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
201 ae = self.assertEqual |
|
1318
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
202 date = Date("02:42:20") |
|
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
203 date = date.local(10) |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
204 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
|
205 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
|
206 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
207 def testIntervalInit(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
208 ae = self.assertEqual |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
209 ae(str(Interval('3y')), '+ 3y') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
210 ae(str(Interval('2 y 1 m')), '+ 2y 1m') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
211 ae(str(Interval('1m 25d')), '+ 1m 25d') |
|
134
d3ffcf862fb7
Fixed bug in unit test ;)
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
212 ae(str(Interval('-2w 3 d ')), '- 17d') |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
213 ae(str(Interval(' - 1 d 2:50 ')), '- 1d 2:50') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
214 ae(str(Interval(' 14:00 ')), '+ 14:00') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
215 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
|
216 ae(str(Interval(8.*3600)), '+ 8:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
217 |
|
1537
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
218 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
|
219 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
|
220 now = Date('.') |
|
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
221 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
|
222 then = now + Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
223 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
|
224 then = now - Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
225 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
|
226 |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
227 def testIntervalAddMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
228 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
229 now = Date('2003-10-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
230 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
231 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
|
232 now = Date('2004-02-28.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
233 then = now + Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
234 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
|
235 now = Date('2003-02-28.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
236 then = now + Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
237 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
|
238 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
239 then = now + Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
240 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
|
241 now = Date('2004-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
242 then = now + Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
243 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
|
244 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
245 def testIntervalSubtractMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
246 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
247 now = Date('2003-11-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
248 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
249 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
|
250 now = Date('2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
251 then = now - Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
252 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
|
253 now = Date('2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
254 then = now - Interval('1d') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
255 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
|
256 now = Date('2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
257 then = now - Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
258 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
|
259 now = Date('2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
260 then = now - Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
261 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
|
262 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
263 def testIntervalAddYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
264 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
265 now = Date('2003-12-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
266 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
267 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
|
268 now = Date('2003-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
269 then = now + Interval('365d') |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
270 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
|
271 now = Date('2004-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
272 then = now + Interval('366d') |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
273 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
|
274 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
275 def testIntervalSubtractYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
276 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
277 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
278 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
279 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
|
280 now = Date('2004-02-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
281 then = now - Interval('365d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
282 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
|
283 now = Date('2005-02-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
284 then = now - Interval('365d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
285 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
|
286 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
287 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
|
288 # 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
|
289 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
|
290 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
|
291 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
|
292 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
|
293 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
|
294 self.assertEqual(i, Interval('28d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
295 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
|
296 self.assertEqual(i, Interval('30d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
297 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
|
298 self.assertEqual(i, Interval('395d')) |
|
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
299 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
|
300 self.assertEqual(i, Interval('-29d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
301 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
|
302 self.assertEqual(i, Interval('28d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
303 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
304 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
|
305 self.assertEqual(i, Interval('365d')) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
306 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
|
307 self.assertEqual(i, Interval('-366d')) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
308 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
|
309 self.assertEqual(i, Interval('366d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
310 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
311 def testIntervalAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
312 ae = self.assertEqual |
|
1268
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
313 ae(str(Interval('1y') + Interval('1y')), '+ 2y') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
314 ae(str(Interval('1y') + Interval('1m')), '+ 1y 1m') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
315 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
|
316 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
|
317 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
|
318 ae(str(Interval('- 1y') + Interval('- 1y')), '- 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
319 ae(str(Interval('1y') + Interval('- 1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
320 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
|
321 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
|
322 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
|
323 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
|
324 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
|
325 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
|
326 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
|
327 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
328 def testIntervalSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
329 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
330 ae(str(Interval('1y') - Interval('- 1y')), '+ 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
331 ae(str(Interval('1y') - Interval('- 1m')), '+ 1y 1m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
332 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
|
333 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
|
334 ae(str(Interval('1y') - Interval('1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
335 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
|
336 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
|
337 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
|
338 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
|
339 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
|
340 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
341 def testOverflow(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
342 ae = self.assertEqual |
|
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)), (1,0,0,0, 0, 1, 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, 100)), (1,0,0,0, 0, 1, 40)) |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
345 ae(fixTimeOverflow((1,0,0,0, 0, 0, 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
|
346 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
|
347 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
|
348 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
|
349 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
|
350 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
|
351 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
|
352 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
|
353 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
|
354 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
|
355 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
356 def testDivision(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
357 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
358 ae(str(Interval('1y')/2), '+ 6m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
359 ae(str(Interval('1:00')/2), '+ 0:30') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
360 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
|
361 |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
362 def testSorting(self): |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
363 ae = self.assertEqual |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
364 i1 = Interval('1y') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
365 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
366 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
367 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
368 l = [i2, i1]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
369 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
370 i1 = Interval('- 2d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
371 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
372 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
373 ae(l, [i1, i2]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
374 |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
375 i1 = Interval("1:20") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
376 i2 = Interval("2d") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
377 i3 = Interval("3:30") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
378 l = [i1, i2, i3]; l.sort() |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
379 ae(l, [i1, i3, i2]) |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
380 |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
381 def testGranularity(self): |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
382 ae = self.assertEqual |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
383 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
|
384 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
|
385 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
|
386 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
|
387 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
|
388 ae(str(Interval('+1w', add_granularity=1)), '+ 14d') |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
389 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
|
390 |
|
1930
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
391 def testIntervalPretty(self): |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
392 def ae(spec, pretty): |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
393 self.assertEqual(Interval(spec).pretty(), pretty) |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
394 ae('2y', 'in 2 years') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
395 ae('1y', 'in 1 year') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
396 ae('2m', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
397 ae('1m 30d', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
398 ae('60d', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
399 ae('59d', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
400 ae('1m', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
401 ae('29d', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
402 ae('28d', 'in 4 weeks') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
403 ae('8d', 'in 1 week') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
404 ae('7d', 'in 7 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
405 ae('1w', 'in 7 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
406 ae('2d', 'in 2 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
407 ae('1d', 'tomorrow') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
408 ae('02:00:00', 'in 2 hours') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
409 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
|
410 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
|
411 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
|
412 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
|
413 ae('01:00:00', 'in an hour') |
|
1930
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
414 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
|
415 ae('00:15:00', 'in 1/4 hour') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
416 ae('00:02:00', 'in 2 minutes') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
417 ae('00:01:00', 'in 1 minute') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
418 ae('00:00:30', 'in a moment') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
419 ae('-00:00:30', 'just now') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
420 ae('-1d', 'yesterday') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
421 ae('-1y', '1 year ago') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
422 ae('-2y', '2 years ago') |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
423 |
|
2702
eb4e7b8d52a2
handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents:
2217
diff
changeset
|
424 def testPyDatetime(self): |
|
eb4e7b8d52a2
handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents:
2217
diff
changeset
|
425 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
|
426 Date(d) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
427 toomuch = datetime.MAXYEAR + 1 |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
428 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
|
429 |
|
3622
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
430 def testSimpleTZ(self): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
431 ae = self.assertEqual |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
432 # local to utc |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
433 date = Date('2006-04-04.12:00:00', 2) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
434 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
|
435 # utc to local |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
436 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
|
437 date = date.local(2) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
438 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
|
439 # from Date instance |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
440 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
|
441 date = Date(date, 2) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
442 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
|
443 |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
444 def testTimestamp(self): |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
445 ae = self.assertEqual |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
446 date = Date('2038') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
447 ae(date.timestamp(), 2145916800) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
448 date = Date('1902') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
449 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
|
450 date = Date(time.gmtime(0)) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
451 ae(date.timestamp(), 0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
452 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
|
453 date = Date(time.gmtime(0x7FFFFFFF)) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
454 ae(date.timestamp(), 2147483647) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
455 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
|
456 date = Date('1901-12-13.20:45:52') |
|
5380
64c4e43fbb84
Python 3 preparation: numeric literal syntax.
Joseph Myers <jsm@polyomino.org.uk>
parents:
5109
diff
changeset
|
457 ae(date.timestamp(), -0x80000000) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
458 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
|
459 date = Date('9999') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
460 ae (date.timestamp(), 253370764800.0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
461 date = Date('0033') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
462 ae (date.timestamp(), -61125753600.0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
463 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
|
464 |
|
5036
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
465 |
|
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
466 @skip_pytz |
|
3622
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
467 class TimezoneTestCase(unittest.TestCase): |
|
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 def testTZ(self): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
470 ae = self.assertEqual |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
471 tz = 'Europe/Warsaw' |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
472 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
473 # local to utc, DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
474 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
|
475 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
|
476 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
477 # local to utc, no DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
478 date = Date('2006-01-01.12:00:00', tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
479 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
|
480 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
481 # utc to local, DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
482 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
|
483 date = date.local(tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
484 ae(str(date), '2006-04-04.12:00:00') |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
485 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
486 # utc to local, no DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
487 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
|
488 date = date.local(tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
489 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
|
490 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
491 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
|
492 date = Date(date, tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
493 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
|
494 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
|
495 date = Date(date, tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
496 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
|
497 |
|
3954
3d5a0a949107
Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents:
3953
diff
changeset
|
498 |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
499 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
|
500 |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
501 def testRange(self): |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
502 ae = self.assertEqual |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
503 r = Range('2006', Date) |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
504 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
|
505 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
|
506 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
|
507 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
|
508 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
|
509 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
|
510 calendar.mdays[i])) |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
511 |
|
3208
d4d58c36d0bf
test invalid tuple handling
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2982
diff
changeset
|
512 # vim: set filetype=python sts=4 sw=4 et si : |
