diff --git a/twisted/protocols/ftp.py b/twisted/protocols/ftp.py
index 09ec8a5..655fd63 100644
a
|
b
|
class FTP(object, basic.LineReceiver, policies.TimeoutMixin): |
1220 | 1220 | Called from data transport when there are errors during the |
1221 | 1221 | transfer. |
1222 | 1222 | """ |
1223 | | if err.check(FTPCmdError): |
1224 | | return (err.value.errorCode, '/'.join(newsegs)) |
1225 | | |
1226 | 1223 | log.msg("Unexpected error received during transfer:") |
1227 | 1224 | log.err(err) |
| 1225 | if err.check(FTPCmdError): |
| 1226 | return err |
1228 | 1227 | return (CNX_CLOSED_TXFR_ABORTED,) |
1229 | 1228 | |
1230 | 1229 | d = self.shell.openForWriting(newsegs) |
diff --git a/twisted/test/test_ftp.py b/twisted/test/test_ftp.py
index 5ae8e3d..1f251da 100644
a
|
b
|
class FTPServerTestCaseAdvancedClient(FTPServerTestCase): |
625 | 625 | # Make a failing file writer. |
626 | 626 | class FailingFileWriter(ftp._FileWriter): |
627 | 627 | def receive(self): |
628 | | return defer.fail(ftp.IsADirectoryError("blah")) |
| 628 | return defer.fail(ftp.IsADirectoryError("failing_file")) |
629 | 629 | |
630 | 630 | def failingSTOR(a, b): |
631 | 631 | return defer.succeed(FailingFileWriter(None)) |
… |
… |
class FTPServerTestCaseAdvancedClient(FTPServerTestCase): |
636 | 636 | |
637 | 637 | def eb(res): |
638 | 638 | res.trap(ftp.CommandFailed) |
| 639 | logs = self.flushLoggedErrors() |
| 640 | self.assertEqual(1, len(logs)) |
| 641 | self.assertIsInstance(logs[0].value, ftp.IsADirectoryError) |
639 | 642 | self.assertEqual( |
640 | 643 | res.value.args[0][0], |
641 | 644 | "550 failing_file: is a directory") |