Issue 21641: smtplib leaves open sockets around if SMTPResponseException is raised in init (original) (raw)

Hello!

I noticed that test_smtplib raises a ResourceWarning, tracking this to this piece of code:

self.assertRaises(smtplib.SMTPResponseException, smtplib.SMTP, HOST, self.port, 'localhost', 3)

What happens is that SMTP.getreply is called in SMTP.__init__ after the socket was opened, but if getreply raises SMTPResponseException, the socket remains opened. The attached patch fixes this.