diff options
author | R. David Murray <rdmurray@bitdance.com> | 2009-05-29 18:03:16 (GMT) |
---|---|---|
committer | R. David Murray <rdmurray@bitdance.com> | 2009-05-29 18:03:16 (GMT) |
commit | 23ddc0eae38eb3c23766eec49a1153b97d9b8556 (patch) | |
tree | 62ebfa1d3fbebbaba4f6a4c4499a3698ede6580c | |
parent | 113a0855908f917c3cc523785fb1b334b6995f6a (diff) | |
download | cpython-23ddc0eae38eb3c23766eec49a1153b97d9b8556.zip cpython-23ddc0eae38eb3c23766eec49a1153b97d9b8556.tar.gz cpython-23ddc0eae38eb3c23766eec49a1153b97d9b8556.tar.bz2 |
Merged revisions 73022 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r73022 | r.david.murray | 2009-05-29 13:31:05 -0400 (Fri, 29 May 2009) | 2 lines
Refactor test parameterization to resolve update timing problem.
........
-rw-r--r-- | Lib/test/test_smtplib.py | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/Lib/test/test_smtplib.py b/Lib/test/test_smtplib.py index f69b776..fff319d 100644 --- a/Lib/test/test_smtplib.py +++ b/Lib/test/test_smtplib.py @@ -302,17 +302,11 @@ sim_lists = {'list-1':['Mr.A@somewhere.com','Mrs.C@somewhereesle.com'], # Simulated SMTP channel & server class SimSMTPChannel(smtpd.SMTPChannel): - def __init__(self, *args, **kw): - self.__extrafeatures = [] + def __init__(self, extra_features, *args, **kw): + self._extrafeatures = ''.join( + [ "250-{0}\r\n".format(x) for x in extra_features ]) super(SimSMTPChannel, self).__init__(*args, **kw) - @property - def _extrafeatures(self): - return ''.join([ "250-{}\r\n".format(x) for x in self.__extrafeatures ]) - - def add_feature(self, feature): - self.__extrafeatures.append(feature) - def smtp_EHLO(self, arg): resp = ('250-testhost\r\n' '250-EXPN\r\n' @@ -362,15 +356,20 @@ class SimSMTPChannel(smtpd.SMTPChannel): class SimSMTPServer(smtpd.SMTPServer): + def __init__(self, *args, **kw): + self._extra_features = [] + smtpd.SMTPServer.__init__(self, *args, **kw) + def handle_accept(self): conn, addr = self.accept() - self._SMTPchannel = SimSMTPChannel(self, conn, addr) + self._SMTPchannel = SimSMTPChannel(self._extra_features, + self, conn, addr) def process_message(self, peer, mailfrom, rcpttos, data): pass def add_feature(self, feature): - self._SMTPchannel.add_feature(feature) + self._extra_features.append(feature) # Test various SMTP & ESMTP commands/behaviors that require a simulated server @@ -452,8 +451,8 @@ class SMTPSimTests(TestCase): smtp.quit() def testAUTH_PLAIN(self): - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) self.serv.add_feature("AUTH PLAIN") + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) expected_auth_ok = (235, b'plain auth ok') self.assertEqual(smtp.login(sim_auth[0], sim_auth[1]), expected_auth_ok) @@ -467,16 +466,16 @@ class SMTPSimTests(TestCase): # the error message). def testAUTH_LOGIN(self): - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) self.serv.add_feature("AUTH LOGIN") + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) try: smtp.login(sim_auth[0], sim_auth[1]) except smtplib.SMTPAuthenticationError as err: if sim_auth_login_password not in str(err): raise "expected encoded password not found in error message" def testAUTH_CRAM_MD5(self): - smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) self.serv.add_feature("AUTH CRAM-MD5") + smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15) try: smtp.login(sim_auth[0], sim_auth[1]) except smtplib.SMTPAuthenticationError as err: |