Python ftplib.error_perm() Examples
The following are 30
code examples of ftplib.error_perm().
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: urllib.py From meddle with MIT License | 7 votes |
def retrfile(self, file, type): import ftplib self.endtransfer() if type in ('d', 'D'): cmd = 'TYPE A'; isdir = 1 else: cmd = 'TYPE ' + type; isdir = 0 try: self.ftp.voidcmd(cmd) except ftplib.all_errors: self.init() self.ftp.voidcmd(cmd) conn = None if file and not isdir: # Try to retrieve as a file try: cmd = 'RETR ' + file conn = self.ftp.ntransfercmd(cmd) except ftplib.error_perm, reason: if str(reason)[:3] != '550': raise IOError, ('ftp error', reason), sys.exc_info()[2]
Example #2
Source File: urllib.py From ironpython2 with Apache License 2.0 | 6 votes |
def retrfile(self, file, type): import ftplib self.endtransfer() if type in ('d', 'D'): cmd = 'TYPE A'; isdir = 1 else: cmd = 'TYPE ' + type; isdir = 0 try: self.ftp.voidcmd(cmd) except ftplib.all_errors: self.init() self.ftp.voidcmd(cmd) conn = None if file and not isdir: # Try to retrieve as a file try: cmd = 'RETR ' + file conn, retrlen = self.ftp.ntransfercmd(cmd) except ftplib.error_perm, reason: if str(reason)[:3] != '550': raise IOError, ('ftp error', reason), sys.exc_info()[2]
Example #3
Source File: test_functional_ssl.py From oss-ftp with MIT License | 6 votes |
def test_prot(self): self.client.login(secure=False) msg = "503 PROT not allowed on insecure control connection." self.assertRaisesWithMsg(ftplib.error_perm, msg, self.client.sendcmd, 'prot p') self.client.login(secure=True) # secured self.client.prot_p() sock = self.client.transfercmd('list') with contextlib.closing(sock): while 1: if not sock.recv(1024): self.client.voidresp() break self.assertTrue(isinstance(sock, ssl.SSLSocket)) # unsecured self.client.prot_c() sock = self.client.transfercmd('list') with contextlib.closing(sock): while 1: if not sock.recv(1024): self.client.voidresp() break self.assertFalse(isinstance(sock, ssl.SSLSocket))
Example #4
Source File: urllib.py From Computable with MIT License | 6 votes |
def retrfile(self, file, type): import ftplib self.endtransfer() if type in ('d', 'D'): cmd = 'TYPE A'; isdir = 1 else: cmd = 'TYPE ' + type; isdir = 0 try: self.ftp.voidcmd(cmd) except ftplib.all_errors: self.init() self.ftp.voidcmd(cmd) conn = None if file and not isdir: # Try to retrieve as a file try: cmd = 'RETR ' + file conn = self.ftp.ntransfercmd(cmd) except ftplib.error_perm, reason: if str(reason)[:3] != '550': raise IOError, ('ftp error', reason), sys.exc_info()[2]
Example #5
Source File: urllib.py From oss-ftp with MIT License | 6 votes |
def retrfile(self, file, type): import ftplib self.endtransfer() if type in ('d', 'D'): cmd = 'TYPE A'; isdir = 1 else: cmd = 'TYPE ' + type; isdir = 0 try: self.ftp.voidcmd(cmd) except ftplib.all_errors: self.init() self.ftp.voidcmd(cmd) conn = None if file and not isdir: # Try to retrieve as a file try: cmd = 'RETR ' + file conn, retrlen = self.ftp.ntransfercmd(cmd) except ftplib.error_perm, reason: if str(reason)[:3] != '550': raise IOError, ('ftp error', reason), sys.exc_info()[2]
Example #6
Source File: urllib.py From BinderFilter with MIT License | 6 votes |
def retrfile(self, file, type): import ftplib self.endtransfer() if type in ('d', 'D'): cmd = 'TYPE A'; isdir = 1 else: cmd = 'TYPE ' + type; isdir = 0 try: self.ftp.voidcmd(cmd) except ftplib.all_errors: self.init() self.ftp.voidcmd(cmd) conn = None if file and not isdir: # Try to retrieve as a file try: cmd = 'RETR ' + file conn, retrlen = self.ftp.ntransfercmd(cmd) except ftplib.error_perm, reason: if str(reason)[:3] != '550': raise IOError, ('ftp error', reason), sys.exc_info()[2]
Example #7
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_stor(self): if self.utf8fs: data = b'abcde12345' * 500 os.remove(TESTFN_UNICODE_2) dummy = BytesIO() dummy.write(data) dummy.seek(0) self.client.storbinary('stor ' + TESTFN_UNICODE_2, dummy) dummy_recv = BytesIO() self.client.retrbinary('retr ' + TESTFN_UNICODE_2, dummy_recv.write) dummy_recv.seek(0) self.assertEqual(dummy_recv.read(), data) else: dummy = BytesIO() self.assertRaises(ftplib.error_perm, self.client.storbinary, 'stor ' + TESTFN_UNICODE_2, dummy)
Example #8
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_epsv(self): # test wrong proto try: self.client.sendcmd('epsv ' + self.other_proto) except ftplib.error_perm as err: self.assertEqual(str(err)[0:3], "522") else: self.fail("Exception not raised") # proto > 2 self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'epsv 3') # test connection for cmd in ('EPSV', 'EPSV ' + self.proto): host, port = ftplib.parse229(self.client.sendcmd(cmd), self.client.sock.getpeername()) with contextlib.closing( socket.socket(self.client.af, socket.SOCK_STREAM)) as s: s.settimeout(TIMEOUT) s.connect((host, port)) self.client.sendcmd('abor')
Example #9
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_mlst(self): # utility function for extracting the line of interest def mlstline(cmd): return self.client.voidcmd(cmd).split('\n')[1] if self.utf8fs: self.assertTrue('type=dir' in mlstline('mlst ' + TESTFN_UNICODE)) self.assertTrue('/' + TESTFN_UNICODE in mlstline('mlst ' + TESTFN_UNICODE)) self.assertTrue('type=file' in mlstline('mlst ' + TESTFN_UNICODE_2)) self.assertTrue('/' + TESTFN_UNICODE_2 in mlstline('mlst ' + TESTFN_UNICODE_2)) else: self.assertRaises(ftplib.error_perm, mlstline, 'mlst ' + TESTFN_UNICODE) # --- file transfer
Example #10
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_rnfr_rnto(self): # rename file tempname = os.path.basename(tempfile.mktemp(dir=HOME)) self.client.rename(self.tempfile, tempname) self.client.rename(tempname, self.tempfile) # rename dir tempname = os.path.basename(tempfile.mktemp(dir=HOME)) self.client.rename(self.tempdir, tempname) self.client.rename(tempname, self.tempdir) # rnfr/rnto over non-existing paths bogus = os.path.basename(tempfile.mktemp(dir=HOME)) self.assertRaises(ftplib.error_perm, self.client.rename, bogus, '/x') self.assertRaises( ftplib.error_perm, self.client.rename, self.tempfile, u('/')) # rnto sent without first specifying the source self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'rnto ' + self.tempfile) # make sure we can't rename root directory self.assertRaisesRegex(ftplib.error_perm, "Can't rename home directory", self.client.rename, '/', '/x')
Example #11
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_unforeseen_mdtm_event(self): # Emulate a case where the file last modification time is prior # to year 1900. This most likely will never happen unless # someone specifically force the last modification time of a # file in some way. # To do so we temporarily override os.path.getmtime so that it # returns a negative value referring to a year prior to 1900. # It causes time.localtime/gmtime to raise a ValueError exception # which is supposed to be handled by server. # On python 3 it seems that the trick of replacing the original # method with the lambda doesn't work. if not PY3: _getmtime = AbstractedFS.getmtime try: AbstractedFS.getmtime = lambda x, y: -9000000000 self.assertRaisesRegex( ftplib.error_perm, "550 Can't determine file's last modification time", self.client.sendcmd, 'mdtm ' + self.tempfile) # make sure client hasn't been disconnected self.client.sendcmd('noop') finally: AbstractedFS.getmtime = _getmtime
Example #12
Source File: test_functional.py From oss-ftp with MIT License | 6 votes |
def test_stou_orphaned_file(self): # Check that no orphaned file gets left behind when STOU fails. # Even if STOU fails the file is first created and then erased. # Since we can't know the name of the file the best way that # we have to test this case is comparing the content of the # directory before and after STOU has been issued. # Assuming that TESTFN is supposed to be a "reserved" file # name we shouldn't get false positives. safe_remove(TESTFN) # login as a limited user in order to make STOU fail self.client.login('anonymous', '@nopasswd') before = os.listdir(HOME) self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'stou ' + TESTFN) after = os.listdir(HOME) if before != after: for file in after: self.assertFalse(file.startswith(TESTFN))
Example #13
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_site(self): self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'site') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'site ?!?') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'site foo bar') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'sitefoo bar')
Example #14
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_mdtm(self): if self.utf8fs: self.client.sendcmd('mdtm ' + TESTFN_UNICODE_2) else: self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'mdtm ' + TESTFN_UNICODE_2)
Example #15
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_type(self): self.client.sendcmd('type a') self.client.sendcmd('type i') self.client.sendcmd('type l7') self.client.sendcmd('type l8') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'type ?!?')
Example #16
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_size(self): self.client.sendcmd('type i') if self.utf8fs: self.client.sendcmd('size ' + TESTFN_UNICODE_2) else: self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'size ' + TESTFN_UNICODE_2)
Example #17
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_help(self): self.client.sendcmd('help') cmd = random.choice(list(FTPHandler.proto_cmds.keys())) self.client.sendcmd('help %s' % cmd) self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'help ?!?')
Example #18
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_rnfr_rnto(self): if self.utf8fs: self.client.rename(TESTFN_UNICODE, TESTFN) else: self.assertRaises(ftplib.error_perm, self.client.rename, TESTFN_UNICODE, TESTFN)
Example #19
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_mode(self): self.client.sendcmd('mode s') self.client.sendcmd('mode S') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'mode b') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'mode c') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'mode ?!?')
Example #20
Source File: test_functional_ssl.py From oss-ftp with MIT License | 5 votes |
def test_auth(self): # unsecured self.client.login(secure=False) self.assertFalse(isinstance(self.client.sock, ssl.SSLSocket)) # secured self.client.login() self.assertTrue(isinstance(self.client.sock, ssl.SSLSocket)) # AUTH issued twice msg = '503 Already using TLS.' self.assertRaisesWithMsg(ftplib.error_perm, msg, self.client.sendcmd, 'auth tls')
Example #21
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_rmdir(self): if self.utf8fs: self.client.rmd(TESTFN_UNICODE) else: self.assertRaises(ftplib.error_perm, self.client.rmd, TESTFN_UNICODE)
Example #22
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_mkd(self): if self.utf8fs: os.rmdir(TESTFN_UNICODE) dirname = self.client.mkd(TESTFN_UNICODE) self.assertEqual(dirname, '/' + TESTFN_UNICODE) self.assertTrue(os.path.isdir(TESTFN_UNICODE)) else: self.assertRaises(ftplib.error_perm, self.client.mkd, TESTFN_UNICODE)
Example #23
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_port_v6(self): # PORT is not supposed to work self.assertRaises(ftplib.error_perm, self.client.sendport, self.server.host, self.server.port)
Example #24
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_epsv_all(self): self.client.sendcmd('epsv all') self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'pasv') self.assertRaises(ftplib.error_perm, self.client.sendport, self.HOST, 2000) self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'eprt |%s|%s|%s|' % (self.proto, self.HOST, 2000))
Example #25
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_on_login_failed(self): pair = [] class TestHandler(FTPHandler): auth_failed_timeout = 0 def on_login_failed(self, username, password): pair.append((username, password)) self._setUp(TestHandler, login=False) self.assertRaises(ftplib.error_perm, self.client.login, 'foo', 'bar') # shut down the server to avoid race conditions self.tearDown() self.assertEqual(pair, [('foo', 'bar')])
Example #26
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_max_login_attempts(self): # Test FTPHandler.max_login_attempts attribute. self.server.handler.max_login_attempts = 1 self.server.handler.auth_failed_timeout = 0 self.assertRaises(ftplib.error_perm, self.client.login, 'wrong', 'wrong') # socket.error (Windows) or EOFError (Linux) exceptions are # supposed to be raised when attempting to send/recv some data # using a disconnected socket self.assertRaises((socket.error, EOFError), self.client.sendcmd, 'noop')
Example #27
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_stat(self): # Test STAT provided with argument which is equal to LIST self.client.sendcmd('stat /') self.client.sendcmd('stat ' + TESTFN) self.client.putcmd('stat *') resp = self.client.getmultiline() self.assertEqual(resp, '550 Globbing not supported.') bogus = os.path.basename(tempfile.mktemp(dir=HOME)) self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'stat ' + bogus)
Example #28
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_mlsd(self): # common tests self._test_listing_cmds('mlsd') dir = os.path.basename(tempfile.mkdtemp(dir=HOME)) self.addCleanup(safe_rmdir, dir) try: self.client.retrlines('mlsd ' + TESTFN, lambda x: x) except ftplib.error_perm as err: resp = str(err) # if path is a file a 501 response code is expected self.assertEqual(str(resp)[0:3], "501") else: self.fail("Exception not raised")
Example #29
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def test_mlst(self): # utility function for extracting the line of interest def mlstline(cmd): return self.client.voidcmd(cmd).split('\n')[1] # the fact set must be preceded by a space self.assertTrue(mlstline('mlst').startswith(' ')) # where TVFS is supported, a fully qualified pathname is expected self.assertTrue(mlstline('mlst ' + TESTFN).endswith('/' + TESTFN)) self.assertTrue(mlstline('mlst').endswith('/')) # assume that no argument has the same meaning of "/" self.assertEqual(mlstline('mlst'), mlstline('mlst /')) # non-existent path bogus = os.path.basename(tempfile.mktemp(dir=HOME)) self.assertRaises(ftplib.error_perm, self.client.sendcmd, 'mlst ' + bogus) # test file/dir notations self.assertTrue('type=dir' in mlstline('mlst')) self.assertTrue('type=file' in mlstline('mlst ' + TESTFN)) # let's add some tests for OPTS command self.client.sendcmd('opts mlst type;') self.assertEqual(mlstline('mlst'), ' type=dir; /') # where no facts are present, two leading spaces before the # pathname are required (RFC-3659) self.client.sendcmd('opts mlst') self.assertEqual(mlstline('mlst'), ' /')
Example #30
Source File: test_functional.py From oss-ftp with MIT License | 5 votes |
def _test_listing_cmds(self, cmd): """Tests common to LIST NLST and MLSD commands.""" # assume that no argument has the same meaning of "/" l1 = l2 = [] self.client.retrlines(cmd, l1.append) self.client.retrlines(cmd + ' /', l2.append) self.assertEqual(l1, l2) if cmd.lower() != 'mlsd': # if pathname is a file one line is expected x = [] self.client.retrlines('%s ' % cmd + TESTFN, x.append) self.assertEqual(len(x), 1) self.assertTrue(''.join(x).endswith(TESTFN)) # non-existent path, 550 response is expected bogus = os.path.basename(tempfile.mktemp(dir=HOME)) self.assertRaises(ftplib.error_perm, self.client.retrlines, '%s ' % cmd + bogus, lambda x: x) # for an empty directory we excpect that the data channel is # opened anyway and that no data is received x = [] tempdir = os.path.basename(tempfile.mkdtemp(dir=HOME)) try: self.client.retrlines('%s %s' % (cmd, tempdir), x.append) self.assertEqual(x, []) finally: safe_rmdir(tempdir)