Changeset 51320

Show
Ignore:
Timestamp:
03/12/07 01:04:52 (3 years ago)
Author:
gracinet
Message:

#1818 fix

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • CPS3/products/CPSMailAccess/trunk/CHANGES

    r50410 r51320  
    77Bug fixes 
    88~~~~~~~~~ 
    9 - 
     9- #1818: out of range dates 
    1010New internal features 
    1111~~~~~~~~~~~~~~~~~~~~~ 
  • CPS3/products/CPSMailAccess/trunk/tests/test_utils.py

    r50008 r51320  
    182182        self.assertEquals(date, datetime(2005, 4, 4, 13, 29, 0)) 
    183183 
     184        date = parseDateString(u'Tue, 25 May 2404 01:13:00 +0100') 
     185 
    184186    def FIXMEtest_localizeDateString(self): 
    185187        self.assertEquals(localizeDateString('Sat, 04 Dec 2004'), 
  • CPS3/products/CPSMailAccess/trunk/utils.py

    r50008 r51320  
    2626from email.Header import decode_header, make_header 
    2727from email.Errors import HeaderParseError 
    28 from exceptions import UnicodeDecodeError 
     28from exceptions import UnicodeDecodeError, OverflowError 
    2929from datetime import datetime 
    3030from time import localtime 
     
    131131    tm = parsedate_tz(date_string) 
    132132    if tm is not None: 
    133         tm = mktime_tz(tm) 
    134         localized = localtime(tm) 
     133        try: 
     134            tm = mktime_tz(tm) 
     135        except OverflowError: 
     136            localized = (1970, 1, 1, 0, 0, 0) 
     137        else: 
     138            localized = localtime(tm) 
    135139    else: 
    136140        # the time does not follow RFC 2822 
     
    138142        try: 
    139143            localized = DateTimeParser().parse(date_string) 
    140         except (ZSyntaxError, DateTimeError): 
     144        except (ZSyntaxError, DateTimeError, OverflowError): 
    141145            localized = (1970, 1, 1, 0, 0, 0) 
    142146