mirror of https://github.com/python/cpython.git
Refactor test parameterization to resolve update timing problem.
This commit is contained in:
parent
4f16d3b4ac
commit
6b98544b32
|
@ -294,17 +294,11 @@ def testFailingHELO(self):
|
||||||
# Simulated SMTP channel & server
|
# Simulated SMTP channel & server
|
||||||
class SimSMTPChannel(smtpd.SMTPChannel):
|
class SimSMTPChannel(smtpd.SMTPChannel):
|
||||||
|
|
||||||
def __init__(self, *args, **kw):
|
def __init__(self, extra_features, *args, **kw):
|
||||||
self.__extrafeatures = []
|
self._extrafeatures = ''.join(
|
||||||
|
[ "250-{0}\r\n".format(x) for x in extra_features ])
|
||||||
smtpd.SMTPChannel.__init__(self, *args, **kw)
|
smtpd.SMTPChannel.__init__(self, *args, **kw)
|
||||||
|
|
||||||
@property
|
|
||||||
def _extrafeatures(self):
|
|
||||||
return ''.join([ "250-{0}\r\n".format(x) for x in self.__extrafeatures ])
|
|
||||||
|
|
||||||
def add_feature(self, feature):
|
|
||||||
self.__extrafeatures.append(feature)
|
|
||||||
|
|
||||||
def smtp_EHLO(self, arg):
|
def smtp_EHLO(self, arg):
|
||||||
resp = ('250-testhost\r\n'
|
resp = ('250-testhost\r\n'
|
||||||
'250-EXPN\r\n'
|
'250-EXPN\r\n'
|
||||||
|
@ -354,15 +348,20 @@ def smtp_AUTH(self, arg):
|
||||||
|
|
||||||
class SimSMTPServer(smtpd.SMTPServer):
|
class SimSMTPServer(smtpd.SMTPServer):
|
||||||
|
|
||||||
|
def __init__(self, *args, **kw):
|
||||||
|
self._extra_features = []
|
||||||
|
smtpd.SMTPServer.__init__(self, *args, **kw)
|
||||||
|
|
||||||
def handle_accept(self):
|
def handle_accept(self):
|
||||||
conn, addr = self.accept()
|
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):
|
def process_message(self, peer, mailfrom, rcpttos, data):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def add_feature(self, feature):
|
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
|
# Test various SMTP & ESMTP commands/behaviors that require a simulated server
|
||||||
|
@ -441,8 +440,8 @@ def testEXPN(self):
|
||||||
smtp.quit()
|
smtp.quit()
|
||||||
|
|
||||||
def testAUTH_PLAIN(self):
|
def testAUTH_PLAIN(self):
|
||||||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
|
||||||
self.serv.add_feature("AUTH PLAIN")
|
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')
|
expected_auth_ok = (235, b'plain auth ok')
|
||||||
self.assertEqual(smtp.login(sim_auth[0], sim_auth[1]), expected_auth_ok)
|
self.assertEqual(smtp.login(sim_auth[0], sim_auth[1]), expected_auth_ok)
|
||||||
|
@ -456,16 +455,16 @@ def testAUTH_PLAIN(self):
|
||||||
# the error message).
|
# the error message).
|
||||||
|
|
||||||
def testAUTH_LOGIN(self):
|
def testAUTH_LOGIN(self):
|
||||||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
|
||||||
self.serv.add_feature("AUTH LOGIN")
|
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])
|
try: smtp.login(sim_auth[0], sim_auth[1])
|
||||||
except smtplib.SMTPAuthenticationError as err:
|
except smtplib.SMTPAuthenticationError as err:
|
||||||
if sim_auth_login_password not in str(err):
|
if sim_auth_login_password not in str(err):
|
||||||
raise "expected encoded password not found in error message"
|
raise "expected encoded password not found in error message"
|
||||||
|
|
||||||
def testAUTH_CRAM_MD5(self):
|
def testAUTH_CRAM_MD5(self):
|
||||||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
|
||||||
self.serv.add_feature("AUTH CRAM-MD5")
|
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])
|
try: smtp.login(sim_auth[0], sim_auth[1])
|
||||||
except smtplib.SMTPAuthenticationError as err:
|
except smtplib.SMTPAuthenticationError as err:
|
||||||
|
|
Loading…
Reference in New Issue