diff --git a/Lib/smtpd.py b/Lib/smtpd.py index ff86e7d2065..732066ef9a5 100755 --- a/Lib/smtpd.py +++ b/Lib/smtpd.py @@ -137,8 +137,8 @@ class SMTPChannel(asynchat.async_chat): self.enable_SMTPUTF8 = enable_SMTPUTF8 if enable_SMTPUTF8: if decode_data: - ValueError("decode_data and enable_SMTPUTF8 cannot be set to" - " True at the same time") + raise ValueError("decode_data and enable_SMTPUTF8 cannot" + " be set to True at the same time") decode_data = False if decode_data is None: warn("The decode_data default of True will change to False in 3.6;" diff --git a/Lib/test/test_smtpd.py b/Lib/test/test_smtpd.py index 1aa55d21440..88dbfdf6f01 100644 --- a/Lib/test/test_smtpd.py +++ b/Lib/test/test_smtpd.py @@ -313,6 +313,12 @@ class SMTPDChannelTest(unittest.TestCase): DummyDispatcherBroken, BrokenDummyServer, (support.HOST, 0), ('b', 0), decode_data=True) + def test_decode_data_and_enable_SMTPUTF8_raises(self): + self.assertRaises( + ValueError, smtpd.SMTPChannel, + self.server, self.channel.conn, self.channel.addr, + enable_SMTPUTF8=True, decode_data=True) + def test_server_accept(self): self.server.handle_accept() diff --git a/Misc/NEWS b/Misc/NEWS index 9a7a85ae030..293d551f465 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -48,6 +48,9 @@ Core and Builtins Library ------- +- Issue #25328: smtpd's SMTPChannel now correctly raises a ValueError if both + decode_data and enable_SMTPUTF8 are set to true. + - Issue #16099: RobotFileParser now supports Crawl-delay and Request-rate extensions. Patch by Nikolay Bogoychev.