#!/usr/bin/env python import unittest from test import test_support import smtplib class SmtpTest(unittest.TestCase): testServer = 'smtp.gmail.com' remotePort = 587 remoteUser = 'anonymous' remotePass = 'pass' def setUp(self): self.server = smtplib.SMTP(self.testServer, self.remotePort) self.server.ehlo() def tearDown(self): rs = self.server.quit() self.assertEqual (rs[0], 221) class SmtpStartTlsTest(SmtpTest): def setUp(self): self.server = smtplib.SMTP(self.testServer, self.remotePort) self.server.ehlo() self.assertTrue('starttls' in self.server.esmtp_features) rs = self.server.starttls() self.server.ehlo() self.assertFalse('starttls' in self.server.esmtp_features) def test_anonlogin(self): self.assertTrue('auth' in self.server.esmtp_features) try: self.server.login(self.remoteUser, self.remotePass) except smtplib.SMTPAuthenticationError, exc: self.assertEqual(exc.smtp_code, 535) class SmtpSSLTest(SmtpStartTlsTest): remotePort = 465 def setUp(self): self.server = smtplib.SMTP_SSL(self.testServer, self.remotePort) self.server.ehlo() self.assertFalse('starttls' in self.server.esmtp_features) def test_main(): test_support.requires("network") test_support.run_unittest( SmtpStartTlsTest, SmtpSSLTest ) if __name__ == "__main__": test_main()