bpo-30119: fix ftplib.FTP.putline() to throw an error for a illegal command (#1214)
This commit is contained in:
parent
896145d9d2
commit
2b1e6e9696
|
@ -186,6 +186,8 @@ class FTP:
|
|||
|
||||
# Internal: send one line to the server, appending CRLF
|
||||
def putline(self, line):
|
||||
if '\r' in line or '\n' in line:
|
||||
raise ValueError('an illegal newline character should not be contained')
|
||||
line = line + CRLF
|
||||
if self.debugging > 1:
|
||||
print('*put*', self.sanitize(line))
|
||||
|
|
|
@ -485,6 +485,9 @@ class TestFTPClass(TestCase):
|
|||
self.assertEqual(self.client.sanitize('PASS 12345'), repr('PASS *****'))
|
||||
|
||||
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')
|
||||
|
@ -493,7 +496,8 @@ class TestFTPClass(TestCase):
|
|||
|
||||
def test_all_errors(self):
|
||||
exceptions = (ftplib.error_reply, ftplib.error_temp, ftplib.error_perm,
|
||||
ftplib.error_proto, ftplib.Error, OSError, EOFError)
|
||||
ftplib.error_proto, ftplib.Error, OSError,
|
||||
EOFError)
|
||||
for x in exceptions:
|
||||
try:
|
||||
raise x('exception not included in all_errors set')
|
||||
|
|
Loading…
Reference in New Issue