summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2009-05-29 18:03:16 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2009-05-29 18:03:16 (GMT)
commit23ddc0eae38eb3c23766eec49a1153b97d9b8556 (patch)
tree62ebfa1d3fbebbaba4f6a4c4499a3698ede6580c
parent113a0855908f917c3cc523785fb1b334b6995f6a (diff)
downloadcpython-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.py27
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: