Turn SFTPFile into a context manager
This commit is contained in:
parent
21cb9a2d86
commit
602250fdf9
|
@ -474,3 +474,9 @@ class SFTPFile (BufferedFile):
|
|||
x = self._saved_exception
|
||||
self._saved_exception = None
|
||||
raise x
|
||||
|
||||
def __enter__(self):
|
||||
return self
|
||||
|
||||
def __exit__(self, type, value, traceback):
|
||||
self.close()
|
||||
|
|
|
@ -188,6 +188,17 @@ class SFTPTest (unittest.TestCase):
|
|||
finally:
|
||||
sftp.remove(FOLDER + '/duck.txt')
|
||||
|
||||
def test_3_sftp_file_can_be_used_as_context_manager(self):
|
||||
"""
|
||||
verify that an opened file can be used as a context manager
|
||||
"""
|
||||
try:
|
||||
with sftp.open(FOLDER + '/duck.txt', 'w') as f:
|
||||
f.write(ARTICLE)
|
||||
self.assertEqual(sftp.stat(FOLDER + '/duck.txt').st_size, 1483)
|
||||
finally:
|
||||
sftp.remove(FOLDER + '/duck.txt')
|
||||
|
||||
def test_4_append(self):
|
||||
"""
|
||||
verify that a file can be opened for append, and tell() still works.
|
||||
|
|
Loading…
Reference in New Issue