Issue #7150: Raise OverflowError if the result of adding or subtracting

timedelta from date or datetime falls outside of the MINYEAR:MAXYEAR range.
This commit is contained in:
Alexander Belopolsky 2010-05-27 20:55:27 +00:00
parent 3bfd0311f9
commit 9292ee0667
3 changed files with 28 additions and 21 deletions

View file

@ -720,15 +720,16 @@ class TestDate(HarmlessMixedComparison, unittest.TestCase):
def test_overflow(self):
tiny = self.theclass.resolution
dt = self.theclass.min + tiny
dt -= tiny # no problem
self.assertRaises(OverflowError, dt.__sub__, tiny)
self.assertRaises(OverflowError, dt.__add__, -tiny)
for delta in [tiny, timedelta(1), timedelta(2)]:
dt = self.theclass.min + delta
dt -= delta # no problem
self.assertRaises(OverflowError, dt.__sub__, delta)
self.assertRaises(OverflowError, dt.__add__, -delta)
dt = self.theclass.max - tiny
dt += tiny # no problem
self.assertRaises(OverflowError, dt.__add__, tiny)
self.assertRaises(OverflowError, dt.__sub__, -tiny)
dt = self.theclass.max - delta
dt += delta # no problem
self.assertRaises(OverflowError, dt.__add__, delta)
self.assertRaises(OverflowError, dt.__sub__, -delta)
def test_fromtimestamp(self):
import time