annotate test/test_dates.py @ 5105:37d1e24fb941

Fix work-around for pytest markers bug The initial work-around implemented was totally botched using 'pytest.skip' instead of 'pytest.mark.skip' which resulted in all tests in a file being completely ignored if any skip conditions that evaluated to true were declared or imported in the file. This work-around will not correctly display why all the tests have been skipped when using the '-rs' parameter. Only the first skip marker to taint a parent test class will be displayed (ie. if both xapian and mysql tests are being skipped, pytest will only output that tests are being skipped because xapian is not installed even though the mysql tests are also being skipped because mysql backend is not available). There also seems to be a bug in the current version of pytest being used in 'run_tests.py' (v2.8.4) that results in the skip not actually working when using 'pytest.mark.skip'. This does work correctly with the most recent release (v2.9.2), so the 'run_tests.py' script will need to be updated.
author John Kristensen <john@jerrykan.com>
date Mon, 27 Jun 2016 14:03:32 +1000
parents c977f3530944
children 43a1f7fe39f5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
18134bffab37 stupid typo
Richard Jones <richard@users.sourceforge.net>
parents: 213
diff changeset
7 # IN NO EVENT SHALL BIZAR SOFTWARE PTY LTD BE LIABLE TO ANY PARTY FOR
213
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
8 # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
9 # OUT OF THE USE OF THIS CODE, EVEN IF THE AUTHOR HAS BEEN ADVISED OF THE
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
10 # POSSIBILITY OF SUCH DAMAGE.
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
11 #
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
12 # BIZAR SOFTWARE PTY LTD SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
d45384bc6420 Added the copyright/license notice to (nearly) all files...
Richard Jones <richard@users.sourceforge.net>
parents: 134
diff changeset
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
2980
e28f047f87fa Interval.from_seconds() produces a buggy output with float argument
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2702
diff changeset
17 #
3824
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
18 import unittest
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
19 import time
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
20 import datetime
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
21 import calendar
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
22
5036
380d8d8b30a3 Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents: 4742
diff changeset
23 import pytest
4407
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
24 from roundup import date, i18n
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
25 from roundup.date import Date, Interval, Range, fixTimeOverflow, \
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
26 get_timezone
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
27
5038
c977f3530944 Work-around for pytest.mark.skipif() bug
John Kristensen <john@jerrykan.com>
parents: 5037
diff changeset
28 # FIX: workaround for a bug in pytest.mark.skipif():
c977f3530944 Work-around for pytest.mark.skipif() bug
John Kristensen <john@jerrykan.com>
parents: 5037
diff changeset
29 # https://github.com/pytest-dev/pytest/issues/568
5036
380d8d8b30a3 Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents: 4742
diff changeset
30 try:
380d8d8b30a3 Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents: 4742
diff changeset
31 import pytz
5038
c977f3530944 Work-around for pytest.mark.skipif() bug
John Kristensen <john@jerrykan.com>
parents: 5037
diff changeset
32 skip_pytz = lambda func, *args, **kwargs: func
5036
380d8d8b30a3 Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents: 4742
diff changeset
33 except ImportError:
5105
37d1e24fb941 Fix work-around for pytest markers bug
John Kristensen <john@jerrykan.com>
parents: 5038
diff changeset
34 skip_pytz = pytest.mark.skip(reason="'pytz' not installed")
5036
380d8d8b30a3 Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents: 4742
diff changeset
35
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
36
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
37 class DateTestCase(unittest.TestCase):
4407
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
38 def setUp(self):
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
39 self.old_gettext_ = i18n.gettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
40 self.old_ngettext_ = i18n.ngettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
41 i18n.gettext = i18n.get_translation(language='C').gettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
42 i18n.ngettext = i18n.get_translation(language='C').ngettext
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
43
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
44 def tearDown(self):
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
45 i18n.gettext = self.old_gettext_
f6a2bfd351ee force tests checking text output to work in the "C" locale
Richard Jones <richard@users.sourceforge.net>
parents: 4072
diff changeset
46 i18n.ngettext = self.old_ngettext_
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
47
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 def testDateInterval(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
49 ae = self.assertEqual
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 date = Date("2000-06-26.00:34:02 + 2d")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
51 ae(str(date), '2000-06-28.00:34:02')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 date = Date("2000-02-27 + 2d")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
53 ae(str(date), '2000-02-29.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 date = Date("2001-02-27 + 2d")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
55 ae(str(date), '2001-03-01.00:00:00')
4072
d5e2767d4e91 Robustify Date.set.
Stefan Seefeld <stefan@seefeld.name>
parents: 3973
diff changeset
56 date = Date("2009", add_granularity=True)
d5e2767d4e91 Robustify Date.set.
Stefan Seefeld <stefan@seefeld.name>
parents: 3973
diff changeset
57 self.assertRaises(ValueError, Date, ". +30d", add_granularity=True)
d5e2767d4e91 Robustify Date.set.
Stefan Seefeld <stefan@seefeld.name>
parents: 3973
diff changeset
58
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
59 def testDate(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
60 ae = self.assertEqual
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
61 date = Date("2000-04-17")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
62 ae(str(date), '2000-04-17.00:00:00')
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
63 date = Date("2000/04/17")
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
64 ae(str(date), '2000-04-17.00:00:00')
543
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
65 date = Date("2000-4-7")
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
66 ae(str(date), '2000-04-07.00:00:00')
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
67 date = Date("2000-4-17")
22e0edf7da6e lots of date/interval related changes: more relaxed date format for input
Richard Jones <richard@users.sourceforge.net>
parents: 225
diff changeset
68 ae(str(date), '2000-04-17.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
69 date = Date("01-25")
225
49748e59852a fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
70 y, m, d, x, x, x, x, x, x = time.gmtime(time.time())
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
71 ae(str(date), '%s-01-25.00:00:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
72 date = Date("2000-04-17.03:45")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
73 ae(str(date), '2000-04-17.03:45:00')
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
74 date = Date("2000/04/17.03:45")
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
75 ae(str(date), '2000-04-17.03:45:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
76 date = Date("08-13.22:13")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
77 ae(str(date), '%s-08-13.22:13:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
78 date = Date("11-07.09:32:43")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
79 ae(str(date), '%s-11-07.09:32:43'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
80 date = Date("14:25")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
81 ae(str(date), '%s-%02d-%02d.14:25:00'%(y, m, d))
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
82 date = Date("8:47:11")
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
83 ae(str(date), '%s-%02d-%02d.08:47:11'%(y, m, d))
1599
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
84 ae(str(Date('2003')), '2003-01-01.00:00:00')
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
85 ae(str(Date('2004-06')), '2004-06-01.00:00:00')
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
86 ae(str(Date('1900-02-01')), '1900-02-01.00:00:00')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
87 ae(str(Date('1800-07-15')), '1800-07-15.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
88
3973
85cbaa50eba1 xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents: 3954
diff changeset
89 def testLeapYear(self):
85cbaa50eba1 xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents: 3954
diff changeset
90 self.assertEquals(str(Date('2008-02-29')), '2008-02-29.00:00:00')
85cbaa50eba1 xml-rpc security checks and tests across all backends [SF#1907211]
Richard Jones <richard@users.sourceforge.net>
parents: 3954
diff changeset
91
1535
26f29449c494 fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents: 1505
diff changeset
92 def testDateError(self):
26f29449c494 fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents: 1505
diff changeset
93 self.assertRaises(ValueError, Date, "12")
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
94 # Date cannot handle dates before year 1
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
95 self.assertRaises(ValueError, Date, (0, 1, 1, 0, 0, 0.0, 0, 1, -1))
3456
9c080e19f307 tighten up Date parsing to not allow 'M/D/YY' (or 'D/M/YY) [SF#1290550]
Richard Jones <richard@users.sourceforge.net>
parents: 3208
diff changeset
96 self.assertRaises(ValueError, Date, "1/1/06")
1535
26f29449c494 fixed detection of bad date specs [SF#691439]
Richard Jones <richard@users.sourceforge.net>
parents: 1505
diff changeset
97
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
98 def testOffset(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
99 ae = self.assertEqual
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
100 date = Date("2000-04-17", -5)
1466
0c3546479b52 time should default to local midnight, not GMT
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1361
diff changeset
101 ae(str(date), '2000-04-17.05:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
102 date = Date("01-25", -5)
225
49748e59852a fixed a 2.1-ism
Richard Jones <richard@users.sourceforge.net>
parents: 214
diff changeset
103 y, m, d, x, x, x, x, x, x = time.gmtime(time.time())
1466
0c3546479b52 time should default to local midnight, not GMT
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1361
diff changeset
104 ae(str(date), '%s-01-25.05:00:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
105 date = Date("2000-04-17.03:45", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
106 ae(str(date), '2000-04-17.08:45:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
107 date = Date("08-13.22:13", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
108 ae(str(date), '%s-08-14.03:13:00'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
109 date = Date("11-07.09:32:43", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
110 ae(str(date), '%s-11-07.14:32:43'%y)
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
111 date = Date("14:25", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
112 ae(str(date), '%s-%02d-%02d.19:25:00'%(y, m, d))
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
113 date = Date("8:47:11", -5)
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
114 ae(str(date), '%s-%02d-%02d.13:47:11'%(y, m, d))
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
115
3586
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
116 # just make sure we parse these, m'kay?
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
117 date = Date('-1d')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
118 date = Date('-1w')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
119 date = Date('-1m')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
120 date = Date('-1y')
f47bddab5a49 date spec wasn't allowing week intervals
Richard Jones <richard@users.sourceforge.net>
parents: 3456
diff changeset
121
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
122 def testOffsetRandom(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
123 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
124 # XXX unsure of the usefulness of these, they're pretty random
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
125 date = Date('2000-01-01') + Interval('- 2y 2m')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
126 ae(str(date), '1997-11-01.00:00:00')
861
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
127 date = Date('2000-01-01 - 2y 2m')
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
128 ae(str(date), '1997-11-01.00:00:00')
641
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
129 date = Date('2000-01-01') + Interval('2m')
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
130 ae(str(date), '2000-03-01.00:00:00')
861
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
131 date = Date('2000-01-01 + 2m')
68cef2bb929d fixed the date module so that Date(". - 2d") works
Richard Jones <richard@users.sourceforge.net>
parents: 641
diff changeset
132 ae(str(date), '2000-03-01.00:00:00')
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
133
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
134 date = Date('2000-01-01') + Interval('60d')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
135 ae(str(date), '2000-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
136 date = Date('2001-01-01') + Interval('60d')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
137 ae(str(date), '2001-03-02.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
138
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
139 def testOffsetAdd(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
140 ae = self.assertEqual
640
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
141 date = Date('2000-02-28.23:59:59') + Interval('00:00:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
142 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
143 date = Date('2001-02-28.23:59:59') + Interval('00:00:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
144 ae(str(date), '2001-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
145
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
146 date = Date('2000-02-28.23:58:59') + Interval('00:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
147 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
148 date = Date('2001-02-28.23:58:59') + Interval('00:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
149 ae(str(date), '2001-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
150
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
151 date = Date('2000-02-28.22:58:59') + Interval('01:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
152 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
153 date = Date('2001-02-28.22:58:59') + Interval('01:01:01')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
154 ae(str(date), '2001-03-01.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
155
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
156 date = Date('2000-02-28.22:58:59') + Interval('00:00:3661')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
157 ae(str(date), '2000-02-29.00:00:00')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
158 date = Date('2001-02-28.22:58:59') + Interval('00:00:3661')
7dd13fd5d8ea fixed some problems in date calculations
Richard Jones <richard@users.sourceforge.net>
parents: 635
diff changeset
159 ae(str(date), '2001-03-01.00:00:00')
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
160 date = Date('2001-03-01.00:00:00') + Interval('150y')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
161 ae(str(date), '2151-03-01.00:00:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
162
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
163 def testOffsetSub(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
164 ae = self.assertEqual
1941
bcc65c5b86e6 fixed date arithmetic to not allow day-of-month == 0 [SF#853306]
Richard Jones <richard@users.sourceforge.net>
parents: 1930
diff changeset
165 date = Date('2000-12-01') - Interval('- 1d')
bcc65c5b86e6 fixed date arithmetic to not allow day-of-month == 0 [SF#853306]
Richard Jones <richard@users.sourceforge.net>
parents: 1930
diff changeset
166
641
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
167 date = Date('2000-01-01') - Interval('- 2y 2m')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
168 ae(str(date), '2002-03-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
169 date = Date('2000-01-01') - Interval('2m')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
170 ae(str(date), '1999-11-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
171
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
172 date = Date('2000-03-01') - Interval('60d')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
173 ae(str(date), '2000-01-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
174 date = Date('2001-03-02') - Interval('60d')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
175 ae(str(date), '2001-01-01.00:00:00')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
176
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
177 date = Date('2000-02-29.00:00:00') - Interval('00:00:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
178 ae(str(date), '2000-02-28.23:59:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
179 date = Date('2001-03-01.00:00:00') - Interval('00:00:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
180 ae(str(date), '2001-02-28.23:59:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
181
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
182 date = Date('2000-02-29.00:00:00') - Interval('00:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
183 ae(str(date), '2000-02-28.23:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
184 date = Date('2001-03-01.00:00:00') - Interval('00:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
185 ae(str(date), '2001-02-28.23:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
186
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
187 date = Date('2000-02-29.00:00:00') - Interval('01:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
188 ae(str(date), '2000-02-28.22:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
189 date = Date('2001-03-01.00:00:00') - Interval('01:01:01')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
190 ae(str(date), '2001-02-28.22:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
191
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
192 date = Date('2000-02-29.00:00:00') - Interval('00:00:3661')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
193 ae(str(date), '2000-02-28.22:58:59')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
194 date = Date('2001-03-01.00:00:00') - Interval('00:00:3661')
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
195 ae(str(date), '2001-02-28.22:58:59')
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
196 date = Date('2001-03-01.00:00:00') - Interval('150y')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
197 ae(str(date), '1851-03-01.00:00:00')
641
cfa460943d4d Oops, there's 24 hours in a day...
Richard Jones <richard@users.sourceforge.net>
parents: 640
diff changeset
198
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
199 def testDateLocal(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
200 ae = self.assertEqual
1318
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
201 date = Date("02:42:20")
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
202 date = date.local(10)
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
203 y, m, d, x, x, x, x, x, x = time.gmtime(time.time())
1318
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
204 ae(str(date), '%s-%02d-%02d.12:42:20'%(y, m, d))
46a1951fdb14 fix Date.local()
Richard Jones <richard@users.sourceforge.net>
parents: 1268
diff changeset
205
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
206 def testIntervalInit(self):
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
207 ae = self.assertEqual
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
208 ae(str(Interval('3y')), '+ 3y')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
209 ae(str(Interval('2 y 1 m')), '+ 2y 1m')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
210 ae(str(Interval('1m 25d')), '+ 1m 25d')
134
d3ffcf862fb7 Fixed bug in unit test ;)
Richard Jones <richard@users.sourceforge.net>
parents: 127
diff changeset
211 ae(str(Interval('-2w 3 d ')), '- 17d')
125
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
212 ae(str(Interval(' - 1 d 2:50 ')), '- 1d 2:50')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
213 ae(str(Interval(' 14:00 ')), '+ 14:00')
23b0e0b74d6a Added Interval tests.
Richard Jones <richard@users.sourceforge.net>
parents: 92
diff changeset
214 ae(str(Interval(' 0:04:33 ')), '+ 0:04:33')
2982
22f16d0646ce oops! error in recently added test
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2980
diff changeset
215 ae(str(Interval(8.*3600)), '+ 8:00')
92
fa44da8d9df2 moving tests -> test
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
216
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
217 def testIntervalInitDate(self):
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
218 ae = self.assertEqual
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
219 now = Date('.')
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
220 now.hour = now.minute = now.second = 0
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
221 then = now + Interval('2d')
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
222 ae((Interval(str(then))), Interval('- 2d'))
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
223 then = now - Interval('2d')
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
224 ae(Interval(str(then)), Interval('+ 2d'))
1537
0e36c9b23aa6 more lenient date input and addition Interval input support [SF#677764]
Richard Jones <richard@users.sourceforge.net>
parents: 1535
diff changeset
225
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
226 def testIntervalAddMonthBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
227 # force the transition over a month boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
228 now = Date('2003-10-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
229 then = now + Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
230 self.assertEqual(str(then), '2003-11-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
231 now = Date('2004-02-28.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
232 then = now + Interval('1d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
233 self.assertEqual(str(then), '2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
234 now = Date('2003-02-28.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
235 then = now + Interval('1d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
236 self.assertEqual(str(then), '2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
237 now = Date('2003-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
238 then = now + Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
239 self.assertEqual(str(then), '2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
240 now = Date('2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
241 then = now + Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
242 self.assertEqual(str(then), '2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
243
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
244 def testIntervalSubtractMonthBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
245 # force the transition over a month boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
246 now = Date('2003-11-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
247 then = now - Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
248 self.assertEqual(str(then), '2003-10-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
249 now = Date('2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
250 then = now - Interval('1d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
251 self.assertEqual(str(then), '2004-02-28.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
252 now = Date('2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
253 then = now - Interval('1d')
1885
deba54ed724f Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1884
diff changeset
254 self.assertEqual(str(then), '2003-02-28.00:00:00')
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
255 now = Date('2003-03-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
256 then = now - Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
257 self.assertEqual(str(then), '2003-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
258 now = Date('2004-02-29.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
259 then = now - Interval('59d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
260 self.assertEqual(str(then), '2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
261
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
262 def testIntervalAddYearBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
263 # force the transition over a year boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
264 now = Date('2003-12-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
265 then = now + Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
266 self.assertEqual(str(then), '2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
267 now = Date('2003-01-01.00:00:00')
1885
deba54ed724f Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1884
diff changeset
268 then = now + Interval('365d')
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
269 self.assertEqual(str(then), '2004-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
270 now = Date('2004-01-01.00:00:00')
1885
deba54ed724f Date arithmetic fixes.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1884
diff changeset
271 then = now + Interval('366d')
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
272 self.assertEqual(str(then), '2005-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
273
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
274 def testIntervalSubtractYearBoundary(self):
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
275 # force the transition over a year boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
276 now = Date('2003-01-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
277 then = now - Interval('2d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
278 self.assertEqual(str(then), '2002-12-30.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
279 now = Date('2004-02-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
280 then = now - Interval('365d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
281 self.assertEqual(str(then), '2003-02-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
282 now = Date('2005-02-01.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
283 then = now - Interval('365d')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
284 self.assertEqual(str(then), '2004-02-02.00:00:00')
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
285
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
286 def testDateSubtract(self):
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
287 # These are thoroughly broken right now.
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
288 i = Date('2003-03-15.00:00:00') - Date('2003-03-10.00:00:00')
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
289 self.assertEqual(i, Interval('5d'))
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
290 i = Date('2003-02-01.00:00:00') - Date('2003-03-01.00:00:00')
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
291 self.assertEqual(i, Interval('-28d'))
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
292 i = Date('2003-03-01.00:00:00') - Date('2003-02-01.00:00:00')
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
293 self.assertEqual(i, Interval('28d'))
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
294 i = Date('2003-03-03.00:00:00') - Date('2003-02-01.00:00:00')
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
295 self.assertEqual(i, Interval('30d'))
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
296 i = Date('2003-03-03.00:00:00') - Date('2002-02-01.00:00:00')
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
297 self.assertEqual(i, Interval('395d'))
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
298 i = Date('2003-03-03.00:00:00') - Date('2003-04-01.00:00:00')
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
299 self.assertEqual(i, Interval('-29d'))
1894
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
300 i = Date('2003-03-01.00:00:00') - Date('2003-02-01.00:00:00')
41ad8b781232 Date - Date works again.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1886
diff changeset
301 self.assertEqual(i, Interval('28d'))
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
302 # force the transition over a year boundary
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
303 i = Date('2003-01-01.00:00:00') - Date('2002-01-01.00:00:00')
1886
e3cff1bb1b86 more tests for date difference. Completely broken code right now.
Anthony Baxter <anthonybaxter@users.sourceforge.net>
parents: 1885
diff changeset
304 self.assertEqual(i, Interval('365d'))
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
305 i = Date('1952-01-01') - Date('1953-01-01')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
306 self.assertEqual(i, Interval('-366d'))
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
307 i = Date('1953-01-01') - Date('1952-01-01')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
308 self.assertEqual(i, Interval('366d'))
1884
dc55a195722d woo, failing date arithmetic tests
Richard Jones <richard@users.sourceforge.net>
parents: 1873
diff changeset
309
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
310 def testIntervalAdd(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
311 ae = self.assertEqual
1268
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
312 ae(str(Interval('1y') + Interval('1y')), '+ 2y')
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
313 ae(str(Interval('1y') + Interval('1m')), '+ 1y 1m')
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
314 ae(str(Interval('1y') + Interval('2:40')), '+ 1y 2:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
315 ae(str(Interval('1y') + Interval('- 1y')), '00:00')
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
316 ae(str(Interval('- 1y') + Interval('1y')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
317 ae(str(Interval('- 1y') + Interval('- 1y')), '- 2y')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
318 ae(str(Interval('1y') + Interval('- 1m')), '+ 11m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
319 ae(str(Interval('1:00') + Interval('1:00')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
320 ae(str(Interval('0:50') + Interval('0:50')), '+ 1:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
321 ae(str(Interval('1:50') + Interval('- 1:50')), '00:00')
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
322 ae(str(Interval('- 1:50') + Interval('1:50')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
323 ae(str(Interval('- 1:50') + Interval('- 1:50')), '- 3:40')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
324 ae(str(Interval('1:59:59') + Interval('00:00:01')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
325 ae(str(Interval('2:00') + Interval('- 00:00:01')), '+ 1:59:59')
1268
b34adc9bcaf2 implemented the missing Interval.__add__
Richard Jones <richard@users.sourceforge.net>
parents: 1090
diff changeset
326
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
327 def testIntervalSub(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
328 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
329 ae(str(Interval('1y') - Interval('- 1y')), '+ 2y')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
330 ae(str(Interval('1y') - Interval('- 1m')), '+ 1y 1m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
331 ae(str(Interval('1y') - Interval('- 2:40')), '+ 1y 2:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
332 ae(str(Interval('1y') - Interval('1y')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
333 ae(str(Interval('1y') - Interval('1m')), '+ 11m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
334 ae(str(Interval('1:00') - Interval('- 1:00')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
335 ae(str(Interval('0:50') - Interval('- 0:50')), '+ 1:40')
2217
98d3bf8ffb19 store Intervals as two columns (and other fixes
Richard Jones <richard@users.sourceforge.net>
parents: 1941
diff changeset
336 ae(str(Interval('1:50') - Interval('1:50')), '00:00')
1487
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
337 ae(str(Interval('1:59:59') - Interval('- 00:00:01')), '+ 2:00')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
338 ae(str(Interval('2:00') - Interval('00:00:01')), '+ 1:59:59')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
339
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
340 def testOverflow(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
341 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
342 ae(fixTimeOverflow((1,0,0,0, 0, 0, 60)), (1,0,0,0, 0, 1, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
343 ae(fixTimeOverflow((1,0,0,0, 0, 0, 100)), (1,0,0,0, 0, 1, 40))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
344 ae(fixTimeOverflow((1,0,0,0, 0, 0, 60*60)), (1,0,0,0, 1, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
345 ae(fixTimeOverflow((1,0,0,0, 0, 0, 24*60*60)), (1,0,0,1, 0, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
346 ae(fixTimeOverflow((1,0,0,0, 0, 0, -1)), (-1,0,0,0, 0, 0, 1))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
347 ae(fixTimeOverflow((1,0,0,0, 0, 0, -100)), (-1,0,0,0, 0, 1, 40))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
348 ae(fixTimeOverflow((1,0,0,0, 0, 0, -60*60)), (-1,0,0,0, 1, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
349 ae(fixTimeOverflow((1,0,0,0, 0, 0, -24*60*60)), (-1,0,0,1, 0, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
350 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 1)), (-1,0,0,0, 0, 0, 1))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
351 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 100)), (-1,0,0,0, 0, 1, 40))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
352 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 60*60)), (-1,0,0,0, 1, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
353 ae(fixTimeOverflow((-1,0,0,0, 0, 0, 24*60*60)), (-1,0,0,1, 0, 0, 0))
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
354
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
355 def testDivision(self):
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
356 ae = self.assertEqual
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
357 ae(str(Interval('1y')/2), '+ 6m')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
358 ae(str(Interval('1:00')/2), '+ 0:30')
37a1906f4454 fixed Interval maths [SF#665357]
Richard Jones <richard@users.sourceforge.net>
parents: 1466
diff changeset
359 ae(str(Interval('00:01')/2), '+ 0:00:30')
1361
b94cc62090be reminder comments for where we need new tests
Richard Jones <richard@users.sourceforge.net>
parents: 1318
diff changeset
360
1494
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
361 def testSorting(self):
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
362 ae = self.assertEqual
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
363 i1 = Interval('1y')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
364 i2 = Interval('1d')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
365 l = [i1, i2]; l.sort()
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
366 ae(l, [i2, i1])
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
367 l = [i2, i1]; l.sort()
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
368 ae(l, [i2, i1])
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
369 i1 = Interval('- 2d')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
370 i2 = Interval('1d')
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
371 l = [i1, i2]; l.sort()
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
372 ae(l, [i1, i2])
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
373
1505
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
374 i1 = Interval("1:20")
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
375 i2 = Interval("2d")
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
376 i3 = Interval("3:30")
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
377 l = [i1, i2, i3]; l.sort()
c101d2ff5a20 fix to [SF#691071], really this time
Richard Jones <richard@users.sourceforge.net>
parents: 1494
diff changeset
378 ae(l, [i1, i3, i2])
1494
66cc5c2819dd oops, Interval sorting ignored sign
Richard Jones <richard@users.sourceforge.net>
parents: 1487
diff changeset
379
1597
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
380 def testGranularity(self):
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
381 ae = self.assertEqual
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
382 ae(str(Date('2003-2-12', add_granularity=1)), '2003-02-12.23:59:59')
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
383 ae(str(Date('2003-1-1.23:00', add_granularity=1)), '2003-01-01.23:00:59')
1599
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
384 ae(str(Date('2003', add_granularity=1)), '2003-12-31.23:59:59')
cc96bf971b33 extended date syntax to make range searches even more useful
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1597
diff changeset
385 ae(str(Date('2003-5', add_granularity=1)), '2003-05-31.23:59:59')
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
386 ae(str(Date('2003-12', add_granularity=1)), '2003-12-31.23:59:59')
1597
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
387 ae(str(Interval('+1w', add_granularity=1)), '+ 14d')
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
388 ae(str(Interval('-2m 3w', add_granularity=1)), '- 2m 14d')
2980
e28f047f87fa Interval.from_seconds() produces a buggy output with float argument
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2702
diff changeset
389
1930
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
390 def testIntervalPretty(self):
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
391 def ae(spec, pretty):
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
392 self.assertEqual(Interval(spec).pretty(), pretty)
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
393 ae('2y', 'in 2 years')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
394 ae('1y', 'in 1 year')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
395 ae('2m', 'in 2 months')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
396 ae('1m 30d', 'in 2 months')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
397 ae('60d', 'in 2 months')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
398 ae('59d', 'in 1 month')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
399 ae('1m', 'in 1 month')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
400 ae('29d', 'in 1 month')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
401 ae('28d', 'in 4 weeks')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
402 ae('8d', 'in 1 week')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
403 ae('7d', 'in 7 days')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
404 ae('1w', 'in 7 days')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
405 ae('2d', 'in 2 days')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
406 ae('1d', 'tomorrow')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
407 ae('02:00:00', 'in 2 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
408 ae('01:59:00', 'in 1 3/4 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
409 ae('01:45:00', 'in 1 3/4 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
410 ae('01:30:00', 'in 1 1/2 hours')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
411 ae('01:29:00', 'in 1 1/4 hours')
2980
e28f047f87fa Interval.from_seconds() produces a buggy output with float argument
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2702
diff changeset
412 ae('01:00:00', 'in an hour')
1930
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
413 ae('00:30:00', 'in 1/2 an hour')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
414 ae('00:15:00', 'in 1/4 hour')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
415 ae('00:02:00', 'in 2 minutes')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
416 ae('00:01:00', 'in 1 minute')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
417 ae('00:00:30', 'in a moment')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
418 ae('-00:00:30', 'just now')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
419 ae('-1d', 'yesterday')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
420 ae('-1y', '1 year ago')
71056b09f2bf Add tests for Interval.pretty().
Johannes Gijsbers <jlgijsbers@users.sourceforge.net>
parents: 1894
diff changeset
421 ae('-2y', '2 years ago')
1597
4d55f90d4af1 granularity based ranges
Andrey Lebedev <kedder@users.sourceforge.net>
parents: 1537
diff changeset
422
2702
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
423 def testPyDatetime(self):
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
424 d = datetime.datetime.now()
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
425 Date(d)
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
426 toomuch = datetime.MAXYEAR + 1
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
427 self.assertRaises(ValueError, Date, (toomuch, 1, 1, 0, 0, 0, 0, 1, -1))
2702
eb4e7b8d52a2 handle Py2.3+ datetime objects as Date specs [SF#971300]
Richard Jones <richard@users.sourceforge.net>
parents: 2217
diff changeset
428
3622
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
429 def testSimpleTZ(self):
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
430 ae = self.assertEqual
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
431 # local to utc
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
432 date = Date('2006-04-04.12:00:00', 2)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
433 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
434 # utc to local
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
435 date = Date('2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
436 date = date.local(2)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
437 ae(str(date), '2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
438 # from Date instance
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
439 date = Date('2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
440 date = Date(date, 2)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
441 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
442
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
443 def testTimestamp(self):
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
444 ae = self.assertEqual
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
445 date = Date('2038')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
446 ae(date.timestamp(), 2145916800)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
447 date = Date('1902')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
448 ae(date.timestamp(), -2145916800)
3824
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
449 date = Date(time.gmtime(0))
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
450 ae(date.timestamp(), 0)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
451 ae(str(date), '1970-01-01.00:00:00')
3824
a5fb7698439d remove some try:/import statements caught by alexander smishlajev
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3822
diff changeset
452 date = Date(time.gmtime(0x7FFFFFFF))
3822
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
453 ae(date.timestamp(), 2147483647)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
454 ae(str(date), '2038-01-19.03:14:07')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
455 date = Date('1901-12-13.20:45:52')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
456 ae(date.timestamp(), -0x80000000L)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
457 ae(str(date), '1901-12-13.20:45:52')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
458 date = Date('9999')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
459 ae (date.timestamp(), 253370764800.0)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
460 date = Date('0033')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
461 ae (date.timestamp(), -61125753600.0)
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
462 ae(str(date), '0033-01-01.00:00:00')
2a60b68985db Fix arbitrary limit on dates.
Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net>
parents: 3622
diff changeset
463
5036
380d8d8b30a3 Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents: 4742
diff changeset
464
380d8d8b30a3 Replace existing run_tests.py script with a pytest script
John Kristensen <john@jerrykan.com>
parents: 4742
diff changeset
465 @skip_pytz
3622
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
466 class TimezoneTestCase(unittest.TestCase):
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
467
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
468 def testTZ(self):
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
469 ae = self.assertEqual
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
470 tz = 'Europe/Warsaw'
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
471
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
472 # local to utc, DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
473 date = Date('2006-04-04.12:00:00', tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
474 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
475
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
476 # local to utc, no DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
477 date = Date('2006-01-01.12:00:00', tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
478 ae(str(date), '2006-01-01.11:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
479
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
480 # utc to local, DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
481 date = Date('2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
482 date = date.local(tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
483 ae(str(date), '2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
484
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
485 # utc to local, no DST
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
486 date = Date('2006-01-01.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
487 date = date.local(tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
488 ae(str(date), '2006-01-01.11:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
489
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
490 date = Date('2006-04-04.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
491 date = Date(date, tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
492 ae(str(date), '2006-04-04.10:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
493 date = Date('2006-01-01.12:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
494 date = Date(date, tz)
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
495 ae(str(date), '2006-01-01.11:00:00')
a9126b8033c5 test timezones (based on patch [SF#1465296])
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 3586
diff changeset
496
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
497
3952
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
498 class RangeTestCase(unittest.TestCase):
3954
3d5a0a949107 Fix granularity stuff so it handles wrapping a lot better.
Richard Jones <richard@users.sourceforge.net>
parents: 3953
diff changeset
499
3952
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
500 def testRange(self):
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
501 ae = self.assertEqual
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
502 r = Range('2006', Date)
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
503 ae(str(r.from_value), '2006-01-01.00:00:00')
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
504 ae(str(r.to_value), '2006-12-31.23:59:59')
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
505 for i in range(1, 13):
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
506 r = Range('2006-%02d'%i, Date)
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
507 ae(str(r.from_value), '2006-%02d-01.00:00:00'%i)
3953
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
508 ae(str(r.to_value), '2006-%02d-%02d.23:59:59'%(i,
78dc9b275aeb New tests for range searching by specifying just a month.
Richard Jones <richard@users.sourceforge.net>
parents: 3952
diff changeset
509 calendar.mdays[i]))
3952
c68581212cf7 add some Range testing, all of which currently fails
Richard Jones <richard@users.sourceforge.net>
parents: 3824
diff changeset
510
3208
d4d58c36d0bf test invalid tuple handling
Alexander Smishlajev <a1s@users.sourceforge.net>
parents: 2982
diff changeset
511 # vim: set filetype=python sts=4 sw=4 et si :

Roundup Issue Tracker: http://roundup-tracker.org/