diff options
author | Christian Heimes <christian@python.org> | 2018-08-16 17:43:44 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-16 17:43:44 (GMT) |
commit | 1590c393360df059160145e7475754427bfc6680 (patch) | |
tree | 66868cceda1fc67c1959e885e086d4f5f490ae3d /Lib/test | |
parent | e6a4755e6793942b950c1595e0c34bd66a0ee13e (diff) | |
download | cpython-1590c393360df059160145e7475754427bfc6680.zip cpython-1590c393360df059160145e7475754427bfc6680.tar.gz cpython-1590c393360df059160145e7475754427bfc6680.tar.bz2 |
bpo-34391: Fix ftplib test for TLS 1.3 (GH-8787)
Read from data socket to avoid "[SSL] shutdown while in init" exception
during shutdown of the dummy server.
Signed-off-by: Christian Heimes <christian@python.org>
<!-- issue-number: [bpo-34391](https://www.bugs.python.org/issue34391) -->
https://bugs.python.org/issue34391
<!-- /issue-number -->
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_ftplib.py | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py index f9488a9..da8ba32 100644 --- a/Lib/test/test_ftplib.py +++ b/Lib/test/test_ftplib.py @@ -880,18 +880,23 @@ class TestTLS_FTPClass(TestCase): # clear text with self.client.transfercmd('list') as sock: self.assertNotIsInstance(sock, ssl.SSLSocket) + self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii')) self.assertEqual(self.client.voidresp(), "226 transfer complete") # secured, after PROT P self.client.prot_p() with self.client.transfercmd('list') as sock: self.assertIsInstance(sock, ssl.SSLSocket) + # consume from SSL socket to finalize handshake and avoid + # "SSLError [SSL] shutdown while in init" + self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii')) self.assertEqual(self.client.voidresp(), "226 transfer complete") # PROT C is issued, the connection must be in cleartext again self.client.prot_c() with self.client.transfercmd('list') as sock: self.assertNotIsInstance(sock, ssl.SSLSocket) + self.assertEqual(sock.recv(1024), LIST_DATA.encode('ascii')) self.assertEqual(self.client.voidresp(), "226 transfer complete") def test_login(self): |