forked from python/cpython
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bpo-38614: Use test.support.LOOPBACK_TIMEOUT constant (pythonGH-17554)
Replace hardcoded timeout constants in tests with LOOPBACK_TIMEOUT of test.support, so it's easier to ajdust this timeout for all tests at once.
- Loading branch information
Showing
10 changed files
with
71 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -245,15 +245,17 @@ def get_output_without_xpeer(self): | |
|
||
def testBasic(self): | ||
# connect | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
smtp.quit() | ||
|
||
def testSourceAddress(self): | ||
# connect | ||
src_port = support.find_unused_port() | ||
try: | ||
smtp = smtplib.SMTP(self.host, self.port, local_hostname='localhost', | ||
timeout=3, source_address=(self.host, src_port)) | ||
timeout=support.LOOPBACK_TIMEOUT, | ||
source_address=(self.host, src_port)) | ||
self.addCleanup(smtp.close) | ||
self.assertEqual(smtp.source_address, (self.host, src_port)) | ||
self.assertEqual(smtp.local_hostname, 'localhost') | ||
|
@@ -264,38 +266,43 @@ def testSourceAddress(self): | |
raise | ||
|
||
def testNOOP(self): | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
expected = (250, b'OK') | ||
self.assertEqual(smtp.noop(), expected) | ||
smtp.quit() | ||
|
||
def testRSET(self): | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
expected = (250, b'OK') | ||
self.assertEqual(smtp.rset(), expected) | ||
smtp.quit() | ||
|
||
def testELHO(self): | ||
# EHLO isn't implemented in DebuggingServer | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
expected = (250, b'\nSIZE 33554432\nHELP') | ||
self.assertEqual(smtp.ehlo(), expected) | ||
smtp.quit() | ||
|
||
def testEXPNNotImplemented(self): | ||
# EXPN isn't implemented in DebuggingServer | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
expected = (502, b'EXPN not implemented') | ||
smtp.putcmd('EXPN') | ||
self.assertEqual(smtp.getreply(), expected) | ||
smtp.quit() | ||
|
||
def testVRFY(self): | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
expected = (252, b'Cannot VRFY user, but will accept message ' + \ | ||
b'and attempt delivery') | ||
|
@@ -306,15 +313,17 @@ def testVRFY(self): | |
def testSecondHELO(self): | ||
# check that a second HELO returns a message that it's a duplicate | ||
# (this behavior is specific to smtpd.SMTPChannel) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.helo() | ||
expected = (503, b'Duplicate HELO/EHLO') | ||
self.assertEqual(smtp.helo(), expected) | ||
smtp.quit() | ||
|
||
def testHELP(self): | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
self.assertEqual(smtp.help(), b'Supported commands: EHLO HELO MAIL ' + \ | ||
b'RCPT DATA RSET NOOP QUIT VRFY') | ||
|
@@ -323,7 +332,8 @@ def testHELP(self): | |
def testSend(self): | ||
# connect and send mail | ||
m = 'A test message' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.sendmail('John', 'Sally', m) | ||
# XXX(nnorwitz): this test is flaky and dies with a bad file descriptor | ||
|
@@ -340,7 +350,8 @@ def testSend(self): | |
|
||
def testSendBinary(self): | ||
m = b'A test message' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.sendmail('John', 'Sally', m) | ||
# XXX (see comment in testSend) | ||
|
@@ -356,7 +367,8 @@ def testSendBinary(self): | |
def testSendNeedingDotQuote(self): | ||
# Issue 12283 | ||
m = '.A test\n.mes.sage.' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.sendmail('John', 'Sally', m) | ||
# XXX (see comment in testSend) | ||
|
@@ -371,7 +383,8 @@ def testSendNeedingDotQuote(self): | |
|
||
def testSendNullSender(self): | ||
m = 'A test message' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.sendmail('<>', 'Sally', m) | ||
# XXX (see comment in testSend) | ||
|
@@ -389,7 +402,8 @@ def testSendNullSender(self): | |
|
||
def testSendMessage(self): | ||
m = email.mime.text.MIMEText('A test message') | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.send_message(m, from_addr='John', to_addrs='Sally') | ||
# XXX (see comment in testSend) | ||
|
@@ -414,7 +428,8 @@ def testSendMessageWithAddresses(self): | |
m['To'] = 'John' | ||
m['CC'] = 'Sally, Fred' | ||
m['Bcc'] = 'John Root <root@localhost>, "Dinsdale" <[email protected]>' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.send_message(m) | ||
# XXX (see comment in testSend) | ||
|
@@ -448,7 +463,8 @@ def testSendMessageWithSomeAddresses(self): | |
m = email.mime.text.MIMEText('A test message') | ||
m['From'] = '[email protected]' | ||
m['To'] = 'John, Dinsdale' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.send_message(m) | ||
# XXX (see comment in testSend) | ||
|
@@ -476,7 +492,8 @@ def testSendMessageWithSpecifiedAddresses(self): | |
m = email.mime.text.MIMEText('A test message') | ||
m['From'] = '[email protected]' | ||
m['To'] = 'John, Dinsdale' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.send_message(m, from_addr='[email protected]', to_addrs='[email protected]') | ||
# XXX (see comment in testSend) | ||
|
@@ -507,7 +524,8 @@ def testSendMessageWithMultipleFrom(self): | |
m['From'] = 'Bernard, Bianca' | ||
m['Sender'] = '[email protected]' | ||
m['To'] = 'John, Dinsdale' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.send_message(m) | ||
# XXX (see comment in testSend) | ||
|
@@ -540,7 +558,8 @@ def testSendMessageResent(self): | |
m['Resent-From'] = '[email protected]' | ||
m['Resent-To'] = 'Martha <[email protected]>, Jeff' | ||
m['Resent-Bcc'] = '[email protected]' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.send_message(m) | ||
# XXX (see comment in testSend) | ||
|
@@ -579,7 +598,8 @@ def testSendMessageMultipleResentRaises(self): | |
m['Resent-Date'] = 'Thu, 2 Jan 1970 17:42:00 +0000' | ||
m['Resent-To'] = '[email protected]' | ||
m['Resent-From'] = 'Martha <[email protected]>, Jeff' | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', timeout=3) | ||
smtp = smtplib.SMTP(HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
with self.assertRaises(ValueError): | ||
smtp.send_message(m) | ||
|
@@ -1130,7 +1150,8 @@ def found_terminator(self): | |
|
||
def test_smtputf8_NotSupportedError_if_no_server_support(self): | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.ehlo() | ||
self.assertTrue(smtp.does_esmtp) | ||
|
@@ -1145,7 +1166,8 @@ def test_smtputf8_NotSupportedError_if_no_server_support(self): | |
|
||
def test_send_unicode_without_SMTPUTF8(self): | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
self.assertRaises(UnicodeEncodeError, smtp.sendmail, 'Alice', 'Böb', '') | ||
self.assertRaises(UnicodeEncodeError, smtp.mail, 'Älice') | ||
|
@@ -1158,15 +1180,16 @@ def test_send_message_error_on_non_ascii_addrs_if_no_smtputf8(self): | |
msg['To'] = 'Dinsdale' | ||
msg['Subject'] = 'Nudge nudge, wink, wink \u1F609' | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
with self.assertRaises(smtplib.SMTPNotSupportedError): | ||
smtp.send_message(msg) | ||
|
||
def test_name_field_not_included_in_envelop_addresses(self): | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3 | ||
) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
|
||
message = EmailMessage() | ||
|
@@ -1242,7 +1265,8 @@ def tearDown(self): | |
|
||
def test_test_server_supports_extensions(self): | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.ehlo() | ||
self.assertTrue(smtp.does_esmtp) | ||
|
@@ -1251,7 +1275,8 @@ def test_test_server_supports_extensions(self): | |
def test_send_unicode_with_SMTPUTF8_via_sendmail(self): | ||
m = '¡a test message containing unicode!'.encode('utf-8') | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.sendmail('Jőhn', 'Sálly', m, | ||
mail_options=['BODY=8BITMIME', 'SMTPUTF8']) | ||
|
@@ -1265,7 +1290,8 @@ def test_send_unicode_with_SMTPUTF8_via_sendmail(self): | |
def test_send_unicode_with_SMTPUTF8_via_low_level_API(self): | ||
m = '¡a test message containing unicode!'.encode('utf-8') | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
smtp.ehlo() | ||
self.assertEqual( | ||
|
@@ -1301,7 +1327,8 @@ def test_send_message_uses_smtputf8_if_addrs_non_ascii(self): | |
oh là là, know what I mean, know what I mean? | ||
""") | ||
smtp = smtplib.SMTP( | ||
HOST, self.port, local_hostname='localhost', timeout=3) | ||
HOST, self.port, local_hostname='localhost', | ||
timeout=support.LOOPBACK_TIMEOUT) | ||
self.addCleanup(smtp.close) | ||
self.assertEqual(smtp.send_message(msg), {}) | ||
self.assertEqual(self.serv.last_mailfrom, 'fő[email protected]') | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
3 changes: 3 additions & 0 deletions
3
Misc/NEWS.d/next/Tests/2019-12-10-14-26-23.bpo-38614.89JpNh.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Replace hardcoded timeout constants in tests with | ||
:data:`~test.support.LOOPBACK_TIMEOUT` of :mod:`test.support`, so it's easier | ||
to ajdust this timeout for all tests at once. |