From 89352b08aad447d046551fa0cd374becd7941c91 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Thu, 26 Jul 2018 06:58:16 -0700 Subject: [PATCH] bpo-32663 Make SMTPUTF8SimTests run (GH-5314) (#8471) Enable and fix SMTPUTF8SimTests in test_smtplib. The tests for SMTPUTF8SimTests in test_smtplib.py were not actually being run because test_smtplib was still using the 'test_main' pattern, and the class was never added to test_main. Additionally, one of the tests needed to be moved to the non-UTF8 server class because it relies on the server not being UTF-8 compatible (and it had a bug in in). (cherry picked from commit 48ed88a93bb0bbeaae9a4cfaa533e4edf13bcb51) Co-authored-by: chason --- Lib/test/test_smtplib.py | 39 +++++++------------ .../2018-01-25-18-10-47.bpo-32663.IKDsqu.rst | 2 + 2 files changed, 16 insertions(+), 25 deletions(-) create mode 100644 Misc/NEWS.d/next/Tests/2018-01-25-18-10-47.bpo-32663.IKDsqu.rst diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py index 7991174fb5d..495764f9aca 100644 --- a/Lib/test/test_smtplib.py +++ b/Lib/test/test_smtplib.py @@ -1074,6 +1074,19 @@ class SMTPSimTests(unittest.TestCase): self.assertRaises(UnicodeEncodeError, smtp.sendmail, 'Alice', 'Böb', '') self.assertRaises(UnicodeEncodeError, smtp.mail, 'Älice') + def test_send_message_error_on_non_ascii_addrs_if_no_smtputf8(self): + # This test is located here and not in the SMTPUTF8SimTests + # class because it needs a "regular" SMTP server to work + msg = EmailMessage() + msg['From'] = "Páolo " + msg['To'] = 'Dinsdale' + msg['Subject'] = 'Nudge nudge, wink, wink \u1F609' + smtp = smtplib.SMTP( + HOST, self.port, local_hostname='localhost', timeout=3) + self.addCleanup(smtp.close) + with self.assertRaises(smtplib.SMTPNotSupportedError): + smtp.send_message(msg) + def test_name_field_not_included_in_envelop_addresses(self): smtp = smtplib.SMTP( HOST, self.port, local_hostname='localhost', timeout=3 @@ -1218,17 +1231,6 @@ class SMTPUTF8SimTests(unittest.TestCase): self.assertIn('SMTPUTF8', self.serv.last_mail_options) self.assertEqual(self.serv.last_rcpt_options, []) - def test_send_message_error_on_non_ascii_addrs_if_no_smtputf8(self): - msg = EmailMessage() - msg['From'] = "Páolo " - msg['To'] = 'Dinsdale' - msg['Subject'] = 'Nudge nudge, wink, wink \u1F609' - smtp = smtplib.SMTP( - HOST, self.port, local_hostname='localhost', timeout=3) - self.addCleanup(smtp.close) - self.assertRaises(smtplib.SMTPNotSupportedError, - smtp.send_message(msg)) - EXPECTED_RESPONSE = encode_base64(b'\0psu\0doesnotexist', eol='') @@ -1296,18 +1298,5 @@ class SMTPAUTHInitialResponseSimTests(unittest.TestCase): self.assertEqual(code, 235) -@support.reap_threads -def test_main(verbose=None): - support.run_unittest( - BadHELOServerTests, - DebuggingServerTests, - GeneralTests, - NonConnectingTests, - SMTPAUTHInitialResponseSimTests, - SMTPSimTests, - TooLongLineTests, - ) - - if __name__ == '__main__': - test_main() + unittest.main() diff --git a/Misc/NEWS.d/next/Tests/2018-01-25-18-10-47.bpo-32663.IKDsqu.rst b/Misc/NEWS.d/next/Tests/2018-01-25-18-10-47.bpo-32663.IKDsqu.rst new file mode 100644 index 00000000000..8357284e573 --- /dev/null +++ b/Misc/NEWS.d/next/Tests/2018-01-25-18-10-47.bpo-32663.IKDsqu.rst @@ -0,0 +1,2 @@ +Making sure the `SMTPUTF8SimTests` class of tests gets run in +test_smtplib.py.