diff --git a/Lib/email/utils.py b/Lib/email/utils.py index cfdfeb3f1a86e4..9d54aa9a0f10bc 100644 --- a/Lib/email/utils.py +++ b/Lib/email/utils.py @@ -195,6 +195,8 @@ def make_msgid(idstring=None, domain=None): def parsedate_to_datetime(data): + if data is None: + return None parsed_date_tz = _parsedate_tz(data) if parsed_date_tz is None: raise ValueError('Invalid date value or format "%s"' % str(data)) diff --git a/Lib/test/test_email/test_utils.py b/Lib/test/test_email/test_utils.py index e3d3eaebc93693..26e8bcdfa101a1 100644 --- a/Lib/test/test_email/test_utils.py +++ b/Lib/test/test_email/test_utils.py @@ -59,6 +59,9 @@ def test_parsedate_to_datetime_with_invalid_raises_valueerror(self): with self.subTest(dtstr=dtstr): self.assertRaises(ValueError, utils.parsedate_to_datetime, dtstr) + def test_parsedate_to_datetime_with_None_returns_None(self): + self.assertIsNone(utils.parsedate_to_datetime(None)) + class LocaltimeTests(unittest.TestCase): def test_localtime_is_tz_aware_daylight_true(self): diff --git a/Misc/NEWS.d/next/Library/2022-06-17-14-23-16.gh-issue-74866.WS__3i.rst b/Misc/NEWS.d/next/Library/2022-06-17-14-23-16.gh-issue-74866.WS__3i.rst new file mode 100644 index 00000000000000..4e13b2aa0d59ee --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-06-17-14-23-16.gh-issue-74866.WS__3i.rst @@ -0,0 +1 @@ +Fix :meth:`utils.parsedate_to_datetime` raising exception on ``None``. It now returns ``None`` instead.