summaryrefslogtreecommitdiffhomepage
path: root/tests/test_sftp.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_sftp.py')
-rw-r--r--tests/test_sftp.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/test_sftp.py b/tests/test_sftp.py
index ccfdf7b0..87c57340 100644
--- a/tests/test_sftp.py
+++ b/tests/test_sftp.py
@@ -185,6 +185,40 @@ class TestSFTP(object):
except:
pass
+ def test_5a_posix_rename(self, sftp):
+ """Test posix-rename@openssh.com protocol extension."""
+ try:
+ # first check that the normal rename works as specified
+ with sftp.open(sftp.FOLDER + "/a", "w") as f:
+ f.write("one")
+ sftp.rename(sftp.FOLDER + "/a", sftp.FOLDER + "/b")
+ with sftp.open(sftp.FOLDER + "/a", "w") as f:
+ f.write("two")
+ try:
+ sftp.rename(sftp.FOLDER + "/a", sftp.FOLDER + "/b")
+ self.assertTrue(
+ False, "no exception when rename-ing onto existing file"
+ )
+ except (OSError, IOError):
+ pass
+
+ # now check with the posix_rename
+ sftp.posix_rename(sftp.FOLDER + "/a", sftp.FOLDER + "/b")
+ with sftp.open(sftp.FOLDER + "/b", "r") as f:
+ data = u(f.read())
+ err = "Contents of renamed file not the same as original file"
+ assert data == "two", err
+
+ finally:
+ try:
+ sftp.remove(sftp.FOLDER + "/a")
+ except:
+ pass
+ try:
+ sftp.remove(sftp.FOLDER + "/b")
+ except:
+ pass
+
def test_6_folder(self, sftp):
"""
create a temporary folder, verify that we can create a file in it, then