summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/isodate/duration.py2
-rw-r--r--src/isodate/tests/test_duration.py14
2 files changed, 15 insertions, 1 deletions
diff --git a/src/isodate/duration.py b/src/isodate/duration.py
index 0d5e0fa..12c0df4 100644
--- a/src/isodate/duration.py
+++ b/src/isodate/duration.py
@@ -251,7 +251,7 @@ class Duration(object):
return True
return False
- def todatetime(self, start=None, end=None):
+ def totimedelta(self, start=None, end=None):
'''
Convert this duration into a timedelta object.
diff --git a/src/isodate/tests/test_duration.py b/src/isodate/tests/test_duration.py
index a66652e..7d72704 100644
--- a/src/isodate/tests/test_duration.py
+++ b/src/isodate/tests/test_duration.py
@@ -323,6 +323,20 @@ class DurationTest(unittest.TestCase):
# treats a != b the same b != a
#self.assertNotEqual(timedelta(days=1), Duration(days=1))
+ def test_totimedelta(self):
+ '''
+ Test conversion form Duration to timedelta.
+ '''
+ dur = Duration(years=1, months=2, days=10)
+ self.assertEqual(dur.totimedelta(datetime(1998, 2, 25)), timedelta(434))
+ # leap year has one day more in february
+ self.assertEqual(dur.totimedelta(datetime(2000, 2, 25)), timedelta(435))
+ dur = Duration(months=2)
+ # march is longer than february, but april is shorter than march (cause only one day difference compared to 2)
+ self.assertEqual(dur.totimedelta(datetime(2000, 2, 25)), timedelta(60))
+ self.assertEqual(dur.totimedelta(datetime(2001, 2, 25)), timedelta(59))
+ self.assertEqual(dur.totimedelta(datetime(2001, 3, 25)), timedelta(61))
+
def create_parsetestcase(durationstring, expectation, format, altstr):
"""