File tree Expand file tree Collapse file tree 2 files changed +23
-5
lines changed Expand file tree Collapse file tree 2 files changed +23
-5
lines changed Original file line number Diff line number Diff line change @@ -207,11 +207,19 @@ def make_msgid(idstring=None, domain=None):
207
207
208
208
209
209
def parsedate_to_datetime (data ):
210
- * dtuple , tz = _parsedate_tz (data )
211
- if tz is None :
212
- return datetime .datetime (* dtuple [:6 ])
213
- return datetime .datetime (* dtuple [:6 ],
214
- tzinfo = datetime .timezone (datetime .timedelta (seconds = tz )))
210
+ try :
211
+ * dtuple , tz = _parsedate_tz (data )
212
+ except TypeError :
213
+ # _parsedate_tz(data) returned None due to failure to parse
214
+ return None
215
+ try :
216
+ if tz is None :
217
+ return datetime .datetime (* dtuple [:6 ])
218
+ return datetime .datetime (* dtuple [:6 ],
219
+ tzinfo = datetime .timezone (datetime .timedelta (seconds = tz )))
220
+ except ValueError :
221
+ # Date parsed ok, but one or more component values are invalid
222
+ return None
215
223
216
224
217
225
def parseaddr (addr ):
Original file line number Diff line number Diff line change @@ -48,6 +48,16 @@ def test_parsedate_to_datetime_naive(self):
48
48
utils .parsedate_to_datetime (self .datestring + ' -0000' ),
49
49
self .naive_dt )
50
50
51
+ def test_parsedate_to_datetime_invalid_string (self ):
52
+ self .assertIsNone (
53
+ utils .parsedate_to_datetime ('' )
54
+ )
55
+
56
+ def test_parsedate_to_datetime_invalid_date (self ):
57
+ self .assertIsNone (
58
+ utils .parsedate_to_datetime ('Tue, 06 Jun 2017 27:39:33 +0600' )
59
+ )
60
+
51
61
52
62
class LocaltimeTests (unittest .TestCase ):
53
63
You can’t perform that action at this time.
0 commit comments