diff options
-rw-r--r-- | Lib/test/test_urllib2net.py | 2 | ||||
-rw-r--r-- | Lib/urllib/request.py | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py index 5da41c37bb..d8d882b2d3 100644 --- a/Lib/test/test_urllib2net.py +++ b/Lib/test/test_urllib2net.py @@ -134,8 +134,10 @@ class OtherNetworkTests(unittest.TestCase): # They do sometimes catch some major disasters, though. def test_ftp(self): + # Testing the same URL twice exercises the caching in CacheFTPHandler urls = [ 'ftp://www.pythontest.net/README', + 'ftp://www.pythontest.net/README', ('ftp://www.pythontest.net/non-existent-file', None, urllib.error.URLError), ] diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 19e2e5bd33..5314b3f260 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -2475,7 +2475,13 @@ class ftpwrapper: return (ftpobj, retrlen) def endtransfer(self): + if not self.busy: + return self.busy = 0 + try: + self.ftp.voidresp() + except ftperrors(): + pass def close(self): self.keepalive = False |