Commit Graph

99 Commits

Author SHA1 Message Date
Pandu E POLUAN
7591d9455e
bpo-27820: Fix AUTH LOGIN logic in smtplib.SMTP (GH-24118)
* Fix auth_login logic (bpo-27820)

* Also fix a longstanding bug in the SimSMTPChannel.found_terminator() method that causes inability to test
SMTP AUTH with initial_response_ok=False.
2021-03-12 15:25:49 -08:00
Ross
3bf05327c2
bpo-42756: Configure LMTP Unix-domain socket to use global default timeout when timeout not provided (GH-23969) 2021-01-02 02:20:25 +09:00
Christian Heimes
03c8ddd9e9
bpo-42413: socket.timeout is now an alias of TimeoutError (GH-23413)
Signed-off-by: Christian Heimes <christian@python.org>
2020-11-20 00:26:07 -08:00
Hai Shi
e80697d687
bpo-40275: Adding threading_helper submodule in test.support (GH-20263) 2020-05-28 00:10:27 +02:00
Christian Heimes
909b5714e1
bpo-9216: hashlib usedforsecurity fixes (GH-20258)
func:`hashlib.new` passed ``usedforsecurity`` to OpenSSL EVP constructor
``_hashlib.new()``. test_hashlib and test_smtplib handle strict security
policy better.

Signed-off-by: Christian Heimes <christian@python.org>

Automerge-Triggered-By: @tiran
2020-05-22 11:04:33 -07:00
Hai Shi
66abe98a81
bpo-40275: Move requires_hashdigest() to test.support.hashlib_helper (GH-19716)
Add a new test.support.hashlib_helper submodule.
2020-04-29 03:11:29 +02:00
Serhiy Storchaka
16994912c9
bpo-40275: Avoid importing socket in test.support (GH-19603)
* Move socket related functions from test.support to socket_helper.
* Import socket, nntplib and urllib.error lazily in transient_internet().
* Remove importing multiprocess.
2020-04-25 10:06:29 +03:00
Dong-hee Na
65a5ce247f bpo-39329: Add timeout parameter for smtplib.LMTP constructor (GH-17998) 2020-01-14 22:42:09 +01:00
Dong-hee Na
62e3973395 bpo-39259: smtp.SMTP/SMTP_SSL now reject timeout = 0 (GH-17958) 2020-01-14 08:49:59 +01:00
Victor Stinner
7772b1af5e
bpo-38614: Use support timeout constants (GH-17572) 2019-12-11 22:17:04 +01:00
Victor Stinner
07871b256c
bpo-38614: Use test.support.LOOPBACK_TIMEOUT constant (GH-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.
2019-12-10 20:32:59 +01:00
Christian Heimes
c64a1a61e6 bpo-38270: Check for hash digest algorithms and avoid MD5 (GH-16382)
Make it easier to run and test Python on systems with restrict crypto policies:

* add requires_hashdigest to test.support to check if a hash digest algorithm is available and working
* avoid MD5 in test_hmac
* replace MD5 with SHA256 in test_tarfile
* mark network tests that require MD5 for MD5-based digest auth or CRAM-MD5


https://bugs.python.org/issue38270
2019-09-25 07:30:20 -07:00
Victor Stinner
8f4ef3b019
Remove unused imports in tests (GH-14518) 2019-07-01 18:28:25 +02:00
Serhiy Storchaka
34fd4c2019
bpo-35133: Fix mistakes when concatenate string literals on different lines. (GH-10284)
Two kind of mistakes:

1. Missed space. After concatenating there is no space between words.

2. Missed comma. Causes unintentional concatenating in a list of strings.
2018-11-05 16:20:25 +02:00
Romuald Brunet
7b31397180 bpo-32680 add default "sock" on SMTP objects (#5345)
By default the smtplib.SMTP objects did not have a sock attribute, it
was only created during connect()
2018-10-09 16:31:55 +02:00
Pablo Galindo
5b7a2cb5ca
bpo-34246: Make sure test_smtplib always cleans resources when finished (GH-9108)
* Make sure that when some of the tests in test_smtplib fail, the allocated threads
and sockets are not leaked. 

* Use support.join_thread() instead of thread.join() to avoid infinite blocks.
2018-09-08 00:15:22 +01:00
Pablo Aguiar
d5fbe9b1a3 bpo-34246: Use no mutable default args in smtplib (GH-8554)
Some methods of the SMTP class use mutable default arguments. Specially
`send_message` is affected as it mutates one of the args by appending items
to it, which has side effects on further calls.
2018-09-07 23:04:48 +01:00
chason
48ed88a93b bpo-32663 Make SMTPUTF8SimTests run (#5314)
Enable and fix SMTPUTF8SimTests in test_smtplib.

The tests for SMTPUTF8SimTests in test_smtplib.py were not actually
being run because test_smtplib was still using the 'test_main' pattern,
and the class was never added to test_main.

Additionally, one of the tests needed to be moved to the non-UTF8 server
class because it relies on the server not being UTF-8 compatible (and it
had a bug in in).
2018-07-25 15:01:28 -04:00
Stéphane Wirtel
8d83e4ba78 bpo-32727: smtplib's SMTP.send_message behaves differently with from_addr and to_addrs (#5451)
Do not pass the name field in the 'from' address in the SMTP envelope.
2018-01-30 19:02:51 -05:00
Victor Stinner
18e95b4176 bpo-31234: Join threads in tests (#3572)
Call thread.join() on threads to prevent the "dangling threads"
warning.
2017-09-14 08:43:04 -07:00
Gregory P. Smith
efb1d0a3c0 bpo-29639: change test.support.HOST to "localhost"
test.support.HOST should be "localhost" as it was in the past. See the bpo-29639.

Tests that need the IP address should use HOSTv4 (added) or the existing HOSTv6 constant.

This changes the definition and fixes tests that needed updating to deal with HOST being
the hostname rather than the hardcoded IP address.

This is only the first step in addressing https://bugs.python.org/issue29639.
2017-09-09 00:30:15 -07:00
Antoine Pitrou
a6a4dc816d bpo-31370: Remove support for threads-less builds (#3385)
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
R David Murray
b0deeb47d8 #25446: Fix regression in smtplib's AUTH LOGIN support.
The auth method tests simply weren't adequate because of the fact that
smtpd doesn't support authentication.  I borrowed some of Milan's
code for that from issue #21935 and added it to the smtplib tests.
Also discovered that the direct test for the 'auth' method wasn't actually
testing anything and fixed it.

The fix makes the new authobject mechanism work the way it is
documented...the problem was that wasn't checking for a 334 return code
if an initial-response was provided, which works fine for auth plain
and cram-md5, but not for auth login.
2015-11-08 01:03:52 -05:00
Barry Warsaw
c5ea754e48 - Issue #15014: SMTP.auth() and SMTP.login() now support RFC 4954's optional
initial-response argument to the SMTP AUTH command.
2015-07-09 10:39:55 -04:00
R David Murray
8308444eef #24218: Add SMTPUTF8 support to send_message.
Reviewed by Maciej Szulik.
2015-05-17 19:27:22 -04:00
R David Murray
cee7cf6026 #22027: Add RFC6531 support to smtplib.
Initial patch by Milan Oberkirch.
2015-05-16 13:58:14 -04:00
R David Murray
0c49b896e6 #16914: add timestamps to smtplib debugging output via new debuglevel 2.
Patch by Gavin Chappell and Maciej Szulik.
2015-04-16 17:14:42 -04:00
R David Murray
b10be15508 Merge #22215: have the smtplib 'quit' command reset the state. 2014-08-30 16:55:45 -04:00
R David Murray
0cff49fcf9 #22215: have the smtplib 'quit' command reset the state.
Without this reset, starttls would fail if a connect/starttls was done after a
quit, because smtplib assumed the existing value of emspt_features was
accurate, but it gets reset when starttls completes (and the new value does
not contain the starttls capability, since tls is already started at that
point).  (There may be additional places where this lack of reset was an
issue as well.)

Patch by Milan Oberkirch.
2014-08-30 16:51:59 -04:00
Charles-François Natali
6e20460dc6 Issue #21566: Make use of socket.listen() default backlog. 2014-07-23 19:28:13 +01:00
R David Murray
76e13c1c29 #15014: Add 'auth' command to implement auth mechanisms and use it in login.
Patch by Milan Oberkirch.
2014-07-03 14:47:46 -04:00
R David Murray
1144da5821 #19662: Eliminate warnings in other test modules that use smtpd.
Eventually these will want to convert to decode_data=False, I think.
2014-06-11 12:27:40 -04:00
R David Murray
afb151a5cc #17498: Defer SMTPServerDisconnected errors until the next command.
Normally an SMTP server will return an error, and smtplib will then issue an
RSET to return the connection to the known starting state.  Some servers,
however, disconnect after issuing certain errors.  When we issue the RSET,
this would result in raising an SMTPServerDisconnected error, *instead* of
returning the error code the user of the library was expecting.  This fix
makes the internal RSET calls ignore the disconnection so that the error code
is returned.  The user of the library will then get the SMTPServerDisconnected
error the next time they try to talk to the server.

Patch by Kushal Das.
2014-04-14 18:21:38 -04:00
Georg Brandl
b38b5c43c7 merge with 3.3 2014-02-10 22:11:21 +01:00
Serhiy Storchaka
1ff23d7542 Issue #20549: Use specific asserts in mailbox, smtplib and poplib tests. 2014-02-08 15:06:43 +02:00
Serhiy Storchaka
578c6777aa Issue #20549: Use specific asserts in mailbox, smtplib and poplib tests. 2014-02-08 15:06:08 +02:00
Andrew Kuchling
785918250f Closes #6683: add a test that exercises multiple authentication.
The SMTP server advertises four different authentication methods, and
the code will try CRAM-MD5 first, which will fail, but LOGIN succeeds.
2013-11-11 14:03:23 -05:00
Benjamin Peterson
e86eb89b97 merge 3.3 (#19125) 2013-09-29 10:47:04 -04:00
Benjamin Peterson
1eca062be6 fix test to run and test that smtpd does support ELHO (closes #19125) 2013-09-29 10:46:31 -04:00
R David Murray
e0a1bf313f Merge: #5713: One more test_smtplib timing fix. 2013-03-21 00:33:30 -04:00
R David Murray
6bd5202227 #5713: One more test_smtplib timing fix. 2013-03-21 00:32:31 -04:00
R David Murray
dac94d619c Merge: #5712: Preemptively fix some other possible timing issues. 2013-03-20 22:12:53 -04:00
R David Murray
54bd49d49b Merge: #5712: Preemptively fix some other possible timing issues. 2013-03-20 22:12:14 -04:00
R David Murray
03b0116c78 #5712: Preemptively fix some other possible timing issues. 2013-03-20 22:11:40 -04:00
R David Murray
ba7d9d46f2 Merge: #5713: fix timing issue in smtplib tests. 2013-03-20 21:56:03 -04:00
R David Murray
a686ed7d10 Merge: #5713: fix timing issue in smtplib tests. 2013-03-20 21:55:14 -04:00
R David Murray
853c0f9d60 #5713: fix timing issue in smtplib tests. 2013-03-20 21:54:05 -04:00
R David Murray
82c6b45c14 Merge: #5713: Handle 421 error codes during sendmail by closing the socket.
This is a partial fix to the issue of servers disconnecting unexpectedly; in
this case the 421 says they are disconnecting, so we close the socket and
return the 421 in the appropriate error context.

Original patch by Mark Sapiro, updated by Kushal Das, with additional
tests by me.
2013-03-20 21:13:56 -04:00
R David Murray
f1a40b4ec5 Merge: #5713: Handle 421 error codes during sendmail by closing the socket.
This is a partial fix to the issue of servers disconnecting unexpectedly; in
this case the 421 says they are disconnecting, so we close the socket and
return the 421 in the appropriate error context.

Original patch by Mark Sapiro, updated by Kushal Das, with additional
tests by me.
2013-03-20 21:12:17 -04:00
R David Murray
d312c740f1 #5713: Handle 421 error codes during sendmail by closing the socket.
This is a partial fix to the issue of servers disconnecting unexpectedly; in
this case the 421 says they are disconnecting, so we close the socket and
return the 421 in the appropriate error context.

Original patch by Mark Sapiro, updated by Kushal Das, with additional
tests by me.
2013-03-20 20:36:14 -04:00