Python ftplib.error_temp() Examples
The following are 30
code examples of ftplib.error_temp().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
ftplib
, or try the search function
.
Example #1
Source File: ftpfs.py From pyfilesystem2 with MIT License | 6 votes |
def close(self): # type: () -> None if not self.closed: with self._lock: try: if self._write_conn is not None: self._write_conn.close() self._write_conn = None self.ftp.voidresp() # Ensure last write completed if self._read_conn is not None: self._read_conn.close() self._read_conn = None try: self.ftp.quit() except error_temp: # pragma: no cover pass finally: super(FTPFile, self).close()
Example #2
Source File: ftp.py From django-storages with BSD 3-Clause "New" or "Revised" License | 6 votes |
def exists(self, name): self._start_connection() try: nlst = self._connection.nlst( os.path.dirname(name) + '/' ) if name in nlst or os.path.basename(name) in nlst: return True else: return False except ftplib.error_temp: return False except ftplib.error_perm: # error_perm: 550 Can't find file return False except ftplib.all_errors: raise FTPStorageException('Error when testing existence of %s' % name)
Example #3
Source File: connections.py From eeweather with Apache License 2.0 | 6 votes |
def read_file_as_bytes(self, filename): # pragma: no cover ftp = self.get_connection() bytes_string = BytesIO() try: try: ftp.retrbinary("RETR {}".format(filename), bytes_string.write) except (ftplib.error_temp, ftplib.error_perm, EOFError, IOError) as e: # Bad connection. attempt to reconnect. logger.warn( "Failed RETR {}:\n{}\n" "Attempting reconnect.".format(filename, e) ) ftp = self.reconnect() ftp.retrbinary("RETR {}".format(filename), bytes_string.write) except Exception as e: logger.warn( "Failed RETR {}:\n{}\n" "Not attempting reconnect.".format(filename, e) ) return None bytes_string.seek(0) logger.info("Successfully retrieved ftp://ftp.ncdc.noaa.gov{}".format(filename)) return bytes_string
Example #4
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_active_conn_error(self): # we open a socket() but avoid to invoke accept() to # reproduce this error condition: # http://code.google.com/p/pyftpdlib/source/detail?r=905 with contextlib.closing(socket.socket()) as sock: sock.bind((HOST, 0)) port = sock.getsockname()[1] self.client.sock.settimeout(.1) try: resp = self.client.sendport(HOST, port) except ftplib.error_temp as err: self.assertEqual(str(err)[:3], '425') except (socket.timeout, getattr(ssl, "SSLError", object())): pass else: self.assertNotEqual(str(resp)[:3], '200')
Example #5
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_stou_max_tries(self): # Emulates case where the max number of tries to find out a # unique file name when processing STOU command gets hit. class TestFS(AbstractedFS): def mkstemp(self, *args, **kwargs): raise IOError(errno.EEXIST, "No usable temporary file name found") self.server.handler.abstracted_fs = TestFS try: self.client.quit() self.client.connect(self.server.host, self.server.port) self.client.login(USER, PASSWD) self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'stou') finally: self.server.handler.abstracted_fs = AbstractedFS
Example #6
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_max_connections_per_ip(self): # Test FTPServer.max_cons_per_ip attribute self.server.server.max_cons_per_ip = 3 self.client.quit() c1 = self.client_class() c2 = self.client_class() c3 = self.client_class() c4 = self.client_class() try: c1.connect(self.server.host, self.server.port) c2.connect(self.server.host, self.server.port) c3.connect(self.server.host, self.server.port) self.assertRaises(ftplib.error_temp, c4.connect, self.server.host, self.server.port) # Make sure client has been disconnected. # socket.error (Windows) or EOFError (Linux) exception is # supposed to be raised in such a case. self.assertRaises((socket.error, EOFError), c4.sendcmd, 'noop') finally: for c in (c1, c2, c3, c4): try: c.quit() except (socket.error, EOFError): # already disconnected c.close()
Example #7
Source File: test_functional.py From pyftpdlib with MIT License | 6 votes |
def test_on_incomplete_file_received(self): self.client.login(USER, PASSWD) data = b'abcde12345' * 1000000 dummyfile = BytesIO() dummyfile.write(data) dummyfile.seek(0) with contextlib.closing( self.client.transfercmd('stor ' + self.testfn2)) as conn: bytes_sent = 0 while True: chunk = dummyfile.read(BUFSIZE) conn.sendall(chunk) bytes_sent += len(chunk) # stop transfer while it isn't finished yet if bytes_sent >= INTERRUPTED_TRANSF_SIZE or not chunk: self.client.putcmd('abor') break # If a data transfer is in progress server is supposed to send # a 426 reply followed by a 226 reply. self.assertRaises(ftplib.error_temp, self.client.getresp) # 426 self.assertEqual(self.client.getresp()[:3], "226") self.read_file( 'on_connect,on_login:%s,on_incomplete_file_received:%s,' % (USER, self.testfn2))
Example #8
Source File: test_functional.py From pyftpdlib with MIT License | 6 votes |
def test_stou_max_tries(self): # Emulates case where the max number of tries to find out a # unique file name when processing STOU command gets hit. class TestFS(AbstractedFS): def mkstemp(self, *args, **kwargs): raise IOError(errno.EEXIST, "No usable temporary file name found") with self.server.lock: self.server.handler.abstracted_fs = TestFS try: self.client.quit() self.client.connect(self.server.host, self.server.port) self.client.login(USER, PASSWD) self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'stou') finally: with self.server.lock: self.server.handler.abstracted_fs = AbstractedFS
Example #9
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_active_conn_error(self): # we open a socket() but avoid to invoke accept() to # reproduce this error condition: # http://code.google.com/p/pyftpdlib/source/detail?r=905 with contextlib.closing(socket.socket()) as sock: sock.bind((HOST, 0)) port = sock.getsockname()[1] self.client.sock.settimeout(.1) try: resp = self.client.sendport(HOST, port) except ftplib.error_temp as err: self.assertEqual(str(err)[:3], '425') except (socket.timeout, getattr(ssl, "SSLError", object())): pass else: self.assertNotEqual(str(resp)[:3], '200')
Example #10
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_max_connections_per_ip(self): # Test FTPServer.max_cons_per_ip attribute self.server.server.max_cons_per_ip = 3 self.client.quit() c1 = self.client_class() c2 = self.client_class() c3 = self.client_class() c4 = self.client_class() try: c1.connect(self.server.host, self.server.port) c2.connect(self.server.host, self.server.port) c3.connect(self.server.host, self.server.port) self.assertRaises(ftplib.error_temp, c4.connect, self.server.host, self.server.port) # Make sure client has been disconnected. # socket.error (Windows) or EOFError (Linux) exception is # supposed to be raised in such a case. self.assertRaises((socket.error, EOFError), c4.sendcmd, 'noop') finally: for c in (c1, c2, c3, c4): try: c.quit() except (socket.error, EOFError): # already disconnected c.close()
Example #11
Source File: ftpfs.py From pyfilesystem2 with MIT License | 6 votes |
def ftp_errors(fs, path=None): # type: (FTPFS, Optional[Text]) -> Iterator[None] try: with fs._lock: yield except socket.error: raise errors.RemoteConnectionError( msg="unable to connect to {}".format(fs.host) ) except EOFError: raise errors.RemoteConnectionError(msg="lost connection to {}".format(fs.host)) except error_temp as error: if path is not None: raise errors.ResourceError( path, msg="ftp error on resource '{}' ({})".format(path, error) ) else: raise errors.OperationFailed(msg="ftp error ({})".format(error)) except error_perm as error: code, message = _parse_ftp_error(error) if code == "552": raise errors.InsufficientStorage(path=path, msg=message) elif code in ("501", "550"): raise errors.ResourceNotFound(path=cast(str, path)) raise errors.PermissionDenied(msg=message)
Example #12
Source File: test_ftplib.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_all_errors(self): exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, ftplib.error_proto, ftplib.Error, OSError, EOFError) for x in exceptions: try: raise x('exception not included in all_errors set') except ftplib.all_errors: pass
Example #13
Source File: auxdata.py From pyroSAR with MIT License | 5 votes |
def __retrieve_ftp(url, filenames, outdir, username, password): files = list(set(filenames)) if not os.path.isdir(outdir): os.makedirs(outdir) pattern = r'(ftp(?:es|))://([a-z0-9.\-]*)[/]*((?:[a-zA-Z0-9/_]*|))' protocol, url, path = re.search(pattern, url).groups() if protocol == 'ftpes': ftp = ftplib.FTP_TLS(url) try: ftp.login(username, password) # login anonymously before securing control channel except ftplib.error_perm as e: raise RuntimeError(str(e)) ftp.prot_p() # switch to secure data connection.. IMPORTANT! Otherwise, only the user and password is encrypted and not all the file data. else: ftp = ftplib.FTP(url, timeout=100) ftp.login() if path != '': ftp.cwd(path) locals = [] for product_remote in files: product_local = os.path.join(outdir, os.path.basename(product_remote)) if not os.path.isfile(product_local): try: targetlist = ftp.nlst(product_remote) except ftplib.error_temp: continue address = '{}://{}/{}{}'.format(protocol, url, path + '/' if path != '' else '', product_remote) print('{} <<-- {}'.format(product_local, address)) with open(product_local, 'wb') as myfile: ftp.retrbinary('RETR {}'.format(product_remote), myfile.write) if os.path.isfile(product_local): locals.append(product_local) ftp.close() return sorted(locals)
Example #14
Source File: recipe-576777.py From code with MIT License | 5 votes |
def list(self, dir, skip_mtime=False): month_to_int = {'Jan': 1, 'Feb': 2, 'Mar': 3, 'Apr': 4, 'May': 5, 'Jun': 6, 'Jul': 7, 'Aug': 8, 'Sep': 9, 'Oct': 10, 'Nov': 11, 'Dec': 12} try: buffer = [] self.ftp.dir('-a ', dir, buffer.append) except ftplib.error_temp: buffer = [] self.ftp.dir(dir, buffer.append) dirs = [] files = {} for line in buffer: cols = line.split(None, 8) name = os.path.split(cols[8])[1] if cols[0] == 'total' or name in ('.', '..'): continue if cols[0].startswith('d'): dirs.append(name) else: if skip_mtime: mtime = 0 else: month = month_to_int[cols[5]] day = int(cols[6]) if cols[7].find(':') == -1: year = int(cols[7]) hour = minute = 0 else: year = datetime.date.today().year hour, minute = [int(s) for s in cols[7].split(':')] mtime = datetime.datetime(year, month, day, hour, minute) mtime = int(time.mktime(mtime.timetuple())) size = int(cols[4]) files[name] = { 'size': size, 'mtime': mtime, } return (dirs, files)
Example #15
Source File: ftpbench.py From aioftp with Apache License 2.0 | 5 votes |
def bytes_per_second(ftp, retr=True): """Return the number of bytes transmitted in 1 second.""" tot_bytes = 0 if retr: def request_file(): ftp.voidcmd('TYPE I') conn = ftp.transfercmd("retr " + TESTFN) return conn with contextlib.closing(request_file()) as conn: register_memory() stop_at = time.time() + 1.0 while stop_at > time.time(): chunk = conn.recv(BUFFER_LEN) if not chunk: a = time.time() ftp.voidresp() conn.close() conn = request_file() stop_at += time.time() - a tot_bytes += len(chunk) try: while chunk: chunk = conn.recv(BUFFER_LEN) ftp.voidresp() conn.close() except (ftplib.error_temp, ftplib.error_perm): pass else: ftp.voidcmd('TYPE I') with contextlib.closing(ftp.transfercmd("STOR " + TESTFN)) as conn: register_memory() chunk = b'x' * BUFFER_LEN stop_at = time.time() + 1 while stop_at > time.time(): tot_bytes += conn.send(chunk) ftp.voidresp() return tot_bytes
Example #16
Source File: ftpbench.py From aioftp with Apache License 2.0 | 5 votes |
def cleanup(): ftp = connect() try: if TESTFN in ftp.mlsd(): ftp.delete(TESTFN) except (ftplib.error_perm, ftplib.error_temp) as err: msg = "could not delete %r test file on cleanup: %r" % (TESTFN, err) print(hilite(msg, ok=False), file=sys.stderr) ftp.quit()
Example #17
Source File: test_ftplib.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_exceptions(self): self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 400') self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 499') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 500') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 599') self.assertRaises(ftplib.error_proto, self.client.sendcmd, 'echo 999')
Example #18
Source File: test_ftplib.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_all_errors(self): exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, ftplib.error_proto, ftplib.Error, IOError, EOFError) for x in exceptions: try: raise x('exception not included in all_errors set') except ftplib.all_errors: pass
Example #19
Source File: dir.py From oss-ftp with MIT License | 5 votes |
def test_rm_dir(self): test_dir_name = unicode(time.time()) try: self.ftp.mkd(test_dir_name) self.ftp.cwd(test_dir_name) self.ftp.cwd("..") self.ftp.rmd(test_dir_name) except (error_temp, error_perm, sock_error): self.fail("rm dir error") try: self.ftp.cwd(test_dir_name) self.fail("rmd dir error") except (error_temp, error_perm, sock_error): pass
Example #20
Source File: test_ftplib.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_exceptions(self): self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\r\n0') self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\n0') self.assertRaises(ValueError, self.client.sendcmd, 'echo 40\r0') self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 400') self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 499') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 500') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 599') self.assertRaises(ftplib.error_proto, self.client.sendcmd, 'echo 999')
Example #21
Source File: test_ftplib.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_all_errors(self): exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, ftplib.error_proto, ftplib.Error, OSError, EOFError) for x in exceptions: try: raise x('exception not included in all_errors set') except ftplib.all_errors: pass
Example #22
Source File: test_ftplib.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_exceptions(self): self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 400') self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 499') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 500') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 599') self.assertRaises(ftplib.error_proto, self.client.sendcmd, 'echo 999')
Example #23
Source File: test_ftplib.py From CTFCrackTools-V2 with GNU General Public License v3.0 | 5 votes |
def test_all_errors(self): exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, ftplib.error_proto, ftplib.Error, IOError, EOFError) for x in exceptions: try: raise x('exception not included in all_errors set') except ftplib.all_errors: pass
Example #24
Source File: test_functional.py From pyftpdlib with MIT License | 5 votes |
def test_stou_rest(self): # Watch for STOU preceded by REST, which makes no sense. self.client.sendcmd('type i') self.client.sendcmd('rest 10') self.assertRaisesRegex(ftplib.error_temp, "Can't STOU while REST", self.client.sendcmd, 'stou')
Example #25
Source File: test_functional.py From pyftpdlib with MIT License | 5 votes |
def test_appe_rest(self): # Watch for APPE preceded by REST, which makes no sense. self.client.sendcmd('type i') self.client.sendcmd('rest 10') self.assertRaisesRegex(ftplib.error_temp, "Can't APPE while REST", self.client.sendcmd, 'appe x')
Example #26
Source File: test_functional.py From pyftpdlib with MIT License | 5 votes |
def test_max_connections(self): # Test FTPServer.max_cons attribute self.server = self.server_class() self.server.server.max_cons = 3 self.server.start() c1 = self.client_class() c2 = self.client_class() c3 = self.client_class() try: c1.connect(self.server.host, self.server.port) c2.connect(self.server.host, self.server.port) self.assertRaises(ftplib.error_temp, c3.connect, self.server.host, self.server.port) # with passive data channel established c2.quit() c1.login(USER, PASSWD) c1.makepasv() self.assertRaises(ftplib.error_temp, c2.connect, self.server.host, self.server.port) # with passive data socket waiting for connection c1.login(USER, PASSWD) c1.sendcmd('pasv') self.assertRaises(ftplib.error_temp, c2.connect, self.server.host, self.server.port) # with active data channel established c1.login(USER, PASSWD) with contextlib.closing(c1.makeport()): self.assertRaises( ftplib.error_temp, c2.connect, self.server.host, self.server.port) finally: for c in (c1, c2, c3): try: c.quit() except (socket.error, EOFError): # already disconnected c.close()
Example #27
Source File: test_ftplib.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_all_errors(self): exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, ftplib.error_proto, ftplib.Error, IOError, EOFError) for x in exceptions: try: raise x('exception not included in all_errors set') except ftplib.all_errors: pass
Example #28
Source File: test_ftplib.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_exceptions(self): self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 400') self.assertRaises(ftplib.error_temp, self.client.sendcmd, 'echo 499') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 500') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'echo 599') self.assertRaises(ftplib.error_proto, self.client.sendcmd, 'echo 999')
Example #29
Source File: test_ftplib.py From android_universal with MIT License | 5 votes |
def test_all_errors(self): exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm, ftplib.error_proto, ftplib.Error, OSError, EOFError) for x in exceptions: try: raise x('exception not included in all_errors set') except ftplib.all_errors: pass
Example #30
Source File: test_functional.py From pyftpdlib with MIT License | 5 votes |
def test_max_connections_per_ip(self): # Test FTPServer.max_cons_per_ip attribute self.server = self.server_class() self.server.server.max_cons_per_ip = 3 self.server.start() c1 = self.client_class() c2 = self.client_class() c3 = self.client_class() c4 = self.client_class() try: c1.connect(self.server.host, self.server.port) c2.connect(self.server.host, self.server.port) c3.connect(self.server.host, self.server.port) self.assertRaises(ftplib.error_temp, c4.connect, self.server.host, self.server.port) # Make sure client has been disconnected. # socket.error (Windows) or EOFError (Linux) exception is # supposed to be raised in such a case. self.assertRaises((socket.error, EOFError), c4.sendcmd, 'noop') finally: for c in (c1, c2, c3, c4): try: c.quit() except (socket.error, EOFError): # already disconnected c.close()