mirror of
https://github.com/python/cpython.git
synced 2025-09-29 03:35:31 +00:00
merge heads
This commit is contained in:
commit
f72119d10f
2 changed files with 7 additions and 5 deletions
|
@ -662,12 +662,12 @@ class SimSMTPChannel(smtpd.SMTPChannel):
|
||||||
if self.rcpt_response is None:
|
if self.rcpt_response is None:
|
||||||
super().smtp_RCPT(arg)
|
super().smtp_RCPT(arg)
|
||||||
return
|
return
|
||||||
self.push(self.rcpt_response[self.rcpt_count])
|
|
||||||
self.rcpt_count += 1
|
self.rcpt_count += 1
|
||||||
|
self.push(self.rcpt_response[self.rcpt_count-1])
|
||||||
|
|
||||||
def smtp_RSET(self, arg):
|
def smtp_RSET(self, arg):
|
||||||
super().smtp_RSET(arg)
|
|
||||||
self.rset_count += 1
|
self.rset_count += 1
|
||||||
|
super().smtp_RSET(arg)
|
||||||
|
|
||||||
def smtp_DATA(self, arg):
|
def smtp_DATA(self, arg):
|
||||||
if self.data_response is None:
|
if self.data_response is None:
|
||||||
|
@ -842,14 +842,16 @@ class SMTPSimTests(unittest.TestCase):
|
||||||
# Issue 5713: make sure close, not rset, is called if we get a 421 error
|
# Issue 5713: make sure close, not rset, is called if we get a 421 error
|
||||||
def test_421_from_mail_cmd(self):
|
def test_421_from_mail_cmd(self):
|
||||||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
||||||
|
smtp.noop()
|
||||||
self.serv._SMTPchannel.mail_response = '421 closing connection'
|
self.serv._SMTPchannel.mail_response = '421 closing connection'
|
||||||
with self.assertRaises(smtplib.SMTPSenderRefused):
|
with self.assertRaises(smtplib.SMTPSenderRefused):
|
||||||
smtp.sendmail('John', 'Sally', 'test message')
|
smtp.sendmail('John', 'Sally', 'test message')
|
||||||
self.assertIsNone(smtp.sock)
|
self.assertIsNone(smtp.sock)
|
||||||
self.assertEqual(self.serv._SMTPchannel.rcpt_count, 0)
|
self.assertEqual(self.serv._SMTPchannel.rset_count, 0)
|
||||||
|
|
||||||
def test_421_from_rcpt_cmd(self):
|
def test_421_from_rcpt_cmd(self):
|
||||||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
||||||
|
smtp.noop()
|
||||||
self.serv._SMTPchannel.rcpt_response = ['250 accepted', '421 closing']
|
self.serv._SMTPchannel.rcpt_response = ['250 accepted', '421 closing']
|
||||||
with self.assertRaises(smtplib.SMTPRecipientsRefused) as r:
|
with self.assertRaises(smtplib.SMTPRecipientsRefused) as r:
|
||||||
smtp.sendmail('John', ['Sally', 'Frank', 'George'], 'test message')
|
smtp.sendmail('John', ['Sally', 'Frank', 'George'], 'test message')
|
||||||
|
@ -866,6 +868,7 @@ class SMTPSimTests(unittest.TestCase):
|
||||||
super().found_terminator()
|
super().found_terminator()
|
||||||
self.serv.channel_class = MySimSMTPChannel
|
self.serv.channel_class = MySimSMTPChannel
|
||||||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=15)
|
||||||
|
smtp.noop()
|
||||||
with self.assertRaises(smtplib.SMTPDataError):
|
with self.assertRaises(smtplib.SMTPDataError):
|
||||||
smtp.sendmail('John@foo.org', ['Sally@foo.org'], 'test message')
|
smtp.sendmail('John@foo.org', ['Sally@foo.org'], 'test message')
|
||||||
self.assertIsNone(smtp.sock)
|
self.assertIsNone(smtp.sock)
|
||||||
|
|
|
@ -10,11 +10,10 @@ except ImportError:
|
||||||
from time import time as _time
|
from time import time as _time
|
||||||
from traceback import format_exc as _format_exc
|
from traceback import format_exc as _format_exc
|
||||||
from _weakrefset import WeakSet
|
from _weakrefset import WeakSet
|
||||||
|
from itertools import islice as _islice
|
||||||
try:
|
try:
|
||||||
from _itertools import islice as _slice
|
|
||||||
from _collections import deque as _deque
|
from _collections import deque as _deque
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from itertools import islice as _islice
|
|
||||||
from collections import deque as _deque
|
from collections import deque as _deque
|
||||||
|
|
||||||
# Note regarding PEP 8 compliant names
|
# Note regarding PEP 8 compliant names
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue