Mercurial > p > roundup > code
annotate test/test_dates.py @ 8223:cfd8eb705c2f
test: fix syntax
empty exclude is an error.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Wed, 18 Dec 2024 20:25:35 -0500 |
| parents | c8a931aa7514 |
| children | 2bf0c4e7795e |
| 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): |
| 6480 | 40 # force use of local locale directory. System locale dir |
| 41 # doesn't have the locale files installed, and without wiping | |
| 42 # the default the .mo file sometimes isn't found. | |
| 6650 | 43 self.backup_domain = i18n.DOMAIN |
| 44 i18n.DOMAIN = '' | |
| 45 self.backup_locale_dirs = i18n.LOCALE_DIRS | |
| 46 i18n.LOCALE_DIRS=["locale"] | |
| 6480 | 47 |
|
4407
f6a2bfd351ee
force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents:
4072
diff
changeset
|
48 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
|
49 self.old_ngettext_ = i18n.ngettext |
|
7558
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
50 i18n.gettext = i18n.get_translation( |
|
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
51 language='C', tracker_home=".").gettext |
|
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
52 i18n.degettext = i18n.get_translation( |
|
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
53 language='de', tracker_home=".").gettext |
|
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
54 i18n.ngettext = i18n.get_translation( |
|
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
55 language='C', tracker_home=".").ngettext |
|
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
56 i18n.dengettext = i18n.get_translation( |
|
c8a931aa7514
fix(i18n): issue2551184 - improve i18n handling
Marcus Preisch
parents:
6650
diff
changeset
|
57 language='de', tracker_home=".").ngettext |
|
4407
f6a2bfd351ee
force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents:
4072
diff
changeset
|
58 |
|
f6a2bfd351ee
force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents:
4072
diff
changeset
|
59 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
|
60 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
|
61 i18n.ngettext = self.old_ngettext_ |
| 6650 | 62 i18n.LOCALE_DIRS = self.backup_locale_dirs |
| 63 i18n.DOMAIN = self.backup_domain | |
|
3953
78dc9b275aeb
New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents:
3952
diff
changeset
|
64 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
65 def testDateInterval(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
66 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
67 date = Date("2000-06-26.00:34:02 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
68 ae(str(date), '2000-06-28.00:34:02') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
69 date = Date("2000-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
70 ae(str(date), '2000-02-29.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
71 date = Date("2001-02-27 + 2d") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
72 ae(str(date), '2001-03-01.00:00:00') |
| 4072 | 73 date = Date("2009", add_granularity=True) |
| 74 self.assertRaises(ValueError, Date, ". +30d", add_granularity=True) | |
| 75 | |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
76 def testDate(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
77 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
78 date = Date("2000-04-17") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
79 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
|
80 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
|
81 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
|
82 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
|
83 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
|
84 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
|
85 ae(str(date), '2000-04-17.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
86 date = Date("01-25") |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
87 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
|
88 ae(str(date), '%s-01-25.00:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
89 date = Date("2000-04-17.03:45") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
90 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
|
91 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
|
92 ae(str(date), '2000-04-17.03:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
93 date = Date("08-13.22:13") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
94 ae(str(date), '%s-08-13.22:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
95 date = Date("11-07.09:32:43") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
96 ae(str(date), '%s-11-07.09:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
97 date = Date("14:25") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
98 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
|
99 date = Date("8:47:11") |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
100 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
|
101 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
|
102 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
|
103 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
|
104 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
|
105 |
|
3973
85cbaa50eba1
xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents:
3954
diff
changeset
|
106 def testLeapYear(self): |
|
5792
db429c75caec
replace assertEquals with assertEqual.
John Rouillard <rouilj@ieee.org>
parents:
5380
diff
changeset
|
107 self.assertEqual(str(Date('2008-02-29')), '2008-02-29.00:00:00') |
|
3973
85cbaa50eba1
xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents:
3954
diff
changeset
|
108 |
|
1535
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
109 def testDateError(self): |
|
26f29449c494
fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents:
1505
diff
changeset
|
110 self.assertRaises(ValueError, Date, "12") |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
111 # Date cannot handle dates before year 1 |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
112 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
|
113 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
|
114 |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
115 def testOffset(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
116 ae = self.assertEqual |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
117 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
|
118 ae(str(date), '2000-04-17.05:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
119 date = Date("01-25", -5) |
|
225
49748e59852a
fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents:
214
diff
changeset
|
120 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
|
121 ae(str(date), '%s-01-25.05:00:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
122 date = Date("2000-04-17.03:45", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
123 ae(str(date), '2000-04-17.08:45:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
124 date = Date("08-13.22:13", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
125 ae(str(date), '%s-08-14.03:13:00'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
126 date = Date("11-07.09:32:43", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
127 ae(str(date), '%s-11-07.14:32:43'%y) |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
128 date = Date("14:25", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
129 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
|
130 date = Date("8:47:11", -5) |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
131 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
|
132 |
|
3586
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
133 # 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
|
134 date = Date('-1d') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
135 date = Date('-1w') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
136 date = Date('-1m') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
137 date = Date('-1y') |
|
f47bddab5a49
date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents:
3456
diff
changeset
|
138 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
139 def testOffsetRandom(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
140 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
141 # 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
|
142 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
|
143 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
|
144 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
|
145 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
|
146 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
|
147 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
|
148 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
|
149 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
|
150 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
151 date = Date('2000-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
152 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
|
153 date = Date('2001-01-01') + Interval('60d') |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
154 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
|
155 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
156 def testOffsetAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
157 ae = self.assertEqual |
|
640
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
158 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
|
159 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
|
160 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
|
161 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
|
162 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
163 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
|
164 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
|
165 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
|
166 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
|
167 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
168 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
|
169 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
|
170 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
|
171 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
|
172 |
|
7dd13fd5d8ea
fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents:
635
diff
changeset
|
173 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
|
174 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
|
175 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
|
176 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
|
177 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
|
178 ae(str(date), '2151-03-01.00:00:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
179 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
180 def testOffsetSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
181 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
|
182 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
|
183 |
|
641
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
184 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
|
185 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
|
186 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
|
187 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
|
188 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
189 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
|
190 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
|
191 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
|
192 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
|
193 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
194 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
|
195 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
|
196 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
|
197 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
|
198 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
199 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
|
200 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
|
201 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
|
202 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
|
203 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
204 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
|
205 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
|
206 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
|
207 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
|
208 |
|
cfa460943d4d
Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents:
640
diff
changeset
|
209 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
|
210 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
|
211 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
|
212 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
|
213 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
|
214 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
|
215 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
216 def testDateLocal(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
217 ae = self.assertEqual |
|
1318
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
218 date = Date("02:42:20") |
|
46a1951fdb14
fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents:
1268
diff
changeset
|
219 date = date.local(10) |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
220 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
|
221 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
|
222 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
223 def testIntervalInit(self): |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
224 ae = self.assertEqual |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
225 ae(str(Interval('3y')), '+ 3y') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
226 ae(str(Interval('2 y 1 m')), '+ 2y 1m') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
227 ae(str(Interval('1m 25d')), '+ 1m 25d') |
|
134
d3ffcf862fb7
Fixed bug in unit test ;)
Richard Jones <richard@users.sourceforge.net>
parents:
127
diff
changeset
|
228 ae(str(Interval('-2w 3 d ')), '- 17d') |
|
125
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
229 ae(str(Interval(' - 1 d 2:50 ')), '- 1d 2:50') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
230 ae(str(Interval(' 14:00 ')), '+ 14:00') |
|
23b0e0b74d6a
Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents:
92
diff
changeset
|
231 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
|
232 ae(str(Interval(8.*3600)), '+ 8:00') |
|
92
fa44da8d9df2
moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff
changeset
|
233 |
|
1537
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
234 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
|
235 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
|
236 now = Date('.') |
|
0e36c9b23aa6
more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents:
1535
diff
changeset
|
237 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
|
238 then = now + Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
239 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
|
240 then = now - Interval('2d') |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
241 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
|
242 |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
243 def testIntervalAddMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
244 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
245 now = Date('2003-10-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
246 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
247 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
|
248 now = Date('2004-02-28.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
249 then = now + Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
250 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
|
251 now = Date('2003-02-28.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
252 then = now + Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
253 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
|
254 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
255 then = now + Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
256 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
|
257 now = Date('2004-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
258 then = now + Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
259 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
|
260 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
261 def testIntervalSubtractMonthBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
262 # force the transition over a month boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
263 now = Date('2003-11-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
264 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
265 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
|
266 now = Date('2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
267 then = now - Interval('1d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
268 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
|
269 now = Date('2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
270 then = now - Interval('1d') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
271 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
|
272 now = Date('2003-03-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
273 then = now - Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
274 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
|
275 now = Date('2004-02-29.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
276 then = now - Interval('59d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
277 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
|
278 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
279 def testIntervalAddYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
280 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
281 now = Date('2003-12-30.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
282 then = now + Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
283 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
|
284 now = Date('2003-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
285 then = now + Interval('365d') |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
286 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
|
287 now = Date('2004-01-01.00:00:00') |
|
1885
deba54ed724f
Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1884
diff
changeset
|
288 then = now + Interval('366d') |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
289 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
|
290 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
291 def testIntervalSubtractYearBoundary(self): |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
292 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
293 now = Date('2003-01-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
294 then = now - Interval('2d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
295 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
|
296 now = Date('2004-02-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
297 then = now - Interval('365d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
298 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
|
299 now = Date('2005-02-01.00:00:00') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
300 then = now - Interval('365d') |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
301 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
|
302 |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
303 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
|
304 # 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
|
305 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
|
306 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
|
307 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
|
308 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
|
309 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
|
310 self.assertEqual(i, Interval('28d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
311 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
|
312 self.assertEqual(i, Interval('30d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
313 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
|
314 self.assertEqual(i, Interval('395d')) |
|
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
315 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
|
316 self.assertEqual(i, Interval('-29d')) |
|
1894
41ad8b781232
Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents:
1886
diff
changeset
|
317 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
|
318 self.assertEqual(i, Interval('28d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
319 # force the transition over a year boundary |
|
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
320 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
|
321 self.assertEqual(i, Interval('365d')) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
322 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
|
323 self.assertEqual(i, Interval('-366d')) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
324 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
|
325 self.assertEqual(i, Interval('366d')) |
|
1884
dc55a195722d
woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents:
1873
diff
changeset
|
326 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
327 def testIntervalAdd(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
328 ae = self.assertEqual |
|
1268
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
329 ae(str(Interval('1y') + Interval('1y')), '+ 2y') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
diff
changeset
|
330 ae(str(Interval('1y') + Interval('1m')), '+ 1y 1m') |
|
b34adc9bcaf2
implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents:
1090
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') |
|
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('- 1y')), '- 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
335 ae(str(Interval('1y') + Interval('- 1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
336 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
|
337 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
|
338 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
|
339 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
|
340 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
|
341 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
|
342 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
|
343 |
|
1487
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
344 def testIntervalSub(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
345 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
346 ae(str(Interval('1y') - Interval('- 1y')), '+ 2y') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
347 ae(str(Interval('1y') - Interval('- 1m')), '+ 1y 1m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
348 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
|
349 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
|
350 ae(str(Interval('1y') - Interval('1m')), '+ 11m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
351 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
|
352 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
|
353 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
|
354 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
|
355 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
|
356 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
357 def testOverflow(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
358 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
359 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
|
360 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
|
361 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
|
362 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
|
363 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
|
364 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
|
365 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
|
366 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
|
367 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
|
368 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
|
369 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
|
370 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
|
371 |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
372 def testDivision(self): |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
373 ae = self.assertEqual |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
374 ae(str(Interval('1y')/2), '+ 6m') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
375 ae(str(Interval('1:00')/2), '+ 0:30') |
|
37a1906f4454
fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents:
1466
diff
changeset
|
376 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
|
377 |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
378 def testSorting(self): |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
379 ae = self.assertEqual |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
380 i1 = Interval('1y') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
381 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
382 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
383 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
384 l = [i2, i1]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
385 ae(l, [i2, i1]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
386 i1 = Interval('- 2d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
387 i2 = Interval('1d') |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
388 l = [i1, i2]; l.sort() |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
389 ae(l, [i1, i2]) |
|
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
390 |
|
1505
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
391 i1 = Interval("1:20") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
392 i2 = Interval("2d") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
393 i3 = Interval("3:30") |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
394 l = [i1, i2, i3]; l.sort() |
|
c101d2ff5a20
fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents:
1494
diff
changeset
|
395 ae(l, [i1, i3, i2]) |
|
1494
66cc5c2819dd
oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents:
1487
diff
changeset
|
396 |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
397 def testGranularity(self): |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
398 ae = self.assertEqual |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
399 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
|
400 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
|
401 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
|
402 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
|
403 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
|
404 ae(str(Interval('+1w', add_granularity=1)), '+ 14d') |
|
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
405 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
|
406 |
|
1930
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
407 def testIntervalPretty(self): |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
408 def ae(spec, pretty): |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
409 self.assertEqual(Interval(spec).pretty(), pretty) |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
410 ae('2y', 'in 2 years') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
411 ae('1y', 'in 1 year') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
412 ae('2m', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
413 ae('1m 30d', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
414 ae('60d', 'in 2 months') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
415 ae('59d', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
416 ae('1m', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
417 ae('29d', 'in 1 month') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
418 ae('28d', 'in 4 weeks') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
419 ae('8d', 'in 1 week') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
420 ae('7d', 'in 7 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
421 ae('1w', 'in 7 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
422 ae('2d', 'in 2 days') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
423 ae('1d', 'tomorrow') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
424 ae('02:00:00', 'in 2 hours') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
425 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
|
426 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
|
427 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
|
428 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
|
429 ae('01:00:00', 'in an hour') |
|
1930
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
430 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
|
431 ae('00:15:00', 'in 1/4 hour') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
432 ae('00:02:00', 'in 2 minutes') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
433 ae('00:01:00', 'in 1 minute') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
434 ae('00:00:30', 'in a moment') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
435 ae('-00:00:30', 'just now') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
436 ae('-1d', 'yesterday') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
437 ae('-1y', '1 year ago') |
|
71056b09f2bf
Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents:
1894
diff
changeset
|
438 ae('-2y', '2 years ago') |
|
1597
4d55f90d4af1
granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents:
1537
diff
changeset
|
439 |
| 6480 | 440 def testIntervalPrettyDe(self): |
| 441 gettext = i18n.gettext | |
| 442 ngettext = i18n.ngettext | |
| 443 | |
| 444 i18n.gettext = i18n.degettext | |
| 445 i18n.ngettext = i18n.dengettext | |
| 446 | |
| 447 def ae(spec, pretty): | |
| 448 self.assertEqual(Interval(spec).pretty(), pretty) | |
| 449 ae('2y', 'in 2 Jahren') | |
| 450 ae('1y', 'in 1 Jahr') | |
| 451 ae('2m', 'in 2 Monaten') | |
| 452 ae('59d', 'in 1 Monat') | |
| 453 ae('1m', 'in 1 Monat') | |
| 454 '''ae('29d', 'in 1 month') | |
| 455 ae('28d', 'in 4 weeks') | |
| 456 ae('8d', 'in 1 week') | |
| 457 ae('7d', 'in 7 days') | |
| 458 ae('1w', 'in 7 days') | |
| 459 ae('2d', 'in 2 days') | |
| 460 ae('1d', 'tomorrow') | |
| 461 ae('02:00:00', 'in 2 hours') | |
| 462 ae('01:59:00', 'in 1 3/4 hours') | |
| 463 ae('01:45:00', 'in 1 3/4 hours') | |
| 464 ae('01:30:00', 'in 1 1/2 hours') | |
| 465 ae('01:29:00', 'in 1 1/4 hours') | |
| 466 ae('01:00:00', 'in an hour') | |
| 467 ae('00:30:00', 'in 1/2 an hour') | |
| 468 ae('00:15:00', 'in 1/4 hour') | |
| 469 ae('00:02:00', 'in 2 minutes') | |
| 470 ae('00:01:00', 'in 1 minute') | |
| 471 ae('00:00:30', 'in a moment') | |
| 472 ae('-00:00:30', 'just now') | |
| 473 ae('-1d', 'yesterday') | |
| 474 ae('-1y', '1 year ago') | |
| 475 ae('-2y', '2 years ago')''' | |
| 476 | |
| 477 i18n.gettext = gettext | |
| 478 i18n.ngettext = ngettext | |
| 479 | |
|
2702
eb4e7b8d52a2
handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents:
2217
diff
changeset
|
480 def testPyDatetime(self): |
|
eb4e7b8d52a2
handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents:
2217
diff
changeset
|
481 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
|
482 Date(d) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
483 toomuch = datetime.MAXYEAR + 1 |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
484 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
|
485 |
|
3622
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
486 def testSimpleTZ(self): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
487 ae = self.assertEqual |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
488 # local to utc |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
489 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
|
490 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
|
491 # utc to local |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
492 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
|
493 date = date.local(2) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
494 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
|
495 # from Date instance |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
496 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
|
497 date = Date(date, 2) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
498 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
|
499 |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
500 def testTimestamp(self): |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
501 ae = self.assertEqual |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
502 date = Date('2038') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
503 ae(date.timestamp(), 2145916800) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
504 date = Date('1902') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
505 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
|
506 date = Date(time.gmtime(0)) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
507 ae(date.timestamp(), 0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
508 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
|
509 date = Date(time.gmtime(0x7FFFFFFF)) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
510 ae(date.timestamp(), 2147483647) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
511 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
|
512 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
|
513 ae(date.timestamp(), -0x80000000) |
|
3822
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
514 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
|
515 date = Date('9999') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
516 ae (date.timestamp(), 253370764800.0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
517 date = Date('0033') |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
518 ae (date.timestamp(), -61125753600.0) |
|
2a60b68985db
Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents:
3622
diff
changeset
|
519 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
|
520 |
|
5036
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
521 |
|
380d8d8b30a3
Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents:
4742
diff
changeset
|
522 @skip_pytz |
|
3622
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
523 class TimezoneTestCase(unittest.TestCase): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
524 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
525 def testTZ(self): |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
526 ae = self.assertEqual |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
527 tz = 'Europe/Warsaw' |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
528 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
529 # local to utc, DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
530 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
|
531 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
|
532 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
533 # local to utc, no DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
534 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
|
535 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
|
536 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
537 # utc to local, DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
538 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
|
539 date = date.local(tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
540 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
|
541 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
542 # utc to local, no DST |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
543 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
|
544 date = date.local(tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
545 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
|
546 |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
547 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
|
548 date = Date(date, tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
549 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
|
550 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
|
551 date = Date(date, tz) |
|
a9126b8033c5
test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3586
diff
changeset
|
552 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
|
553 |
|
6380
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
554 def testUnrecognizedTimezone(self): |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
555 '''Unrecognize timezone should raise key error''' |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
556 |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
557 # unrecognized timezone |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
558 tz = 'Zoot' |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
559 |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
560 with self.assertRaises(KeyError) as cm: |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
561 date = Date('2006-04-04.12:00:00', tz) |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
562 |
|
d76291836523
Fix issue2551128 - Impossible to validate a user with unknown timezone
John Rouillard <rouilj@ieee.org>
parents:
5792
diff
changeset
|
563 self.assertEqual(cm.exception.args, ('Zoot',)) |
|
3954
3d5a0a949107
Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents:
3953
diff
changeset
|
564 |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
565 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
|
566 |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
567 def testRange(self): |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
568 ae = self.assertEqual |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
569 r = Range('2006', Date) |
|
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
570 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
|
571 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
|
572 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
|
573 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
|
574 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
|
575 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
|
576 calendar.mdays[i])) |
|
3952
c68581212cf7
add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents:
3824
diff
changeset
|
577 |
|
3208
d4d58c36d0bf
test invalid tuple handling
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2982
diff
changeset
|
578 # vim: set filetype=python sts=4 sw=4 et si : |
