◐ Shell
clean mode source ↗

Issue 21641: smtplib leaves open sockets around if SMTPResponseException is raised in __init__

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.