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