From: Senthil Kumaran Date: Thu, 24 Mar 2011 03:46:19 +0000 (+0800) Subject: issue10883 - Silence some ftp related ResourceWarnings in test_urllib2net. Patch... X-Git-Tag: v3.2.1b1~222 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2024acd36ffa0b39229425843bfae572b50ef6e3;p=python issue10883 - Silence some ftp related ResourceWarnings in test_urllib2net. Patch by Nadeem Vawda. --- diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py index 4d3648d0f2..53e8107c56 100644 --- a/Lib/urllib/request.py +++ b/Lib/urllib/request.py @@ -2136,7 +2136,7 @@ class ftpwrapper: # Try to retrieve as a file try: cmd = 'RETR ' + file - conn = self.ftp.ntransfercmd(cmd) + conn, retrlen = self.ftp.ntransfercmd(cmd) except ftplib.error_perm as reason: if str(reason)[:3] != '550': raise URLError('ftp error', reason).with_traceback( @@ -2157,10 +2157,14 @@ class ftpwrapper: cmd = 'LIST ' + file else: cmd = 'LIST' - conn = self.ftp.ntransfercmd(cmd) + conn, retrlen = self.ftp.ntransfercmd(cmd) self.busy = 1 + + ftpobj = addclosehook(conn.makefile('rb'), self.endtransfer) + conn.close() # Pass back both a suitably decorated object and a retrieval length - return (addclosehook(conn[0].makefile('rb'), self.endtransfer), conn[1]) + return (ftpobj, retrlen) + def endtransfer(self): if not self.busy: return