Browse Source

HUE-4708 [aws] Add test_rename for directory rename in S3

Jenny Kim 9 years ago
parent
commit
27ad0c1
1 changed files with 32 additions and 0 deletions
  1. 32 0
      desktop/libs/aws/src/aws/s3/s3fs_test.py

+ 32 - 0
desktop/libs/aws/src/aws/s3/s3fs_test.py

@@ -195,6 +195,38 @@ class S3FSTest(S3TestBase):
       eq_(data, actual)
 
 
+  def test_rename_dir(self):
+    src_dir = self.get_test_path('test_rename_dir_src')
+    dst_dir = self.get_test_path('test_rename_dir_dst')
+
+    with self.cleaning(src_dir, dst_dir):
+      self.fs.mkdir(src_dir)
+      self.fs.create(join(src_dir, 'file_one.txt'), data='foo')
+      self.fs.create(join(src_dir, 'file_two.txt'), data='bar')
+
+      src_ls = self.fs.listdir(src_dir)
+      eq_(2, len(src_ls))
+      assert_true('file_one.txt' in src_ls)
+      assert_true('file_two.txt' in src_ls)
+
+      # Assert that no directories with dst_dir name exist yet
+      assert_false(self.fs.exists(dst_dir))
+
+      # Rename src to dst
+      self.fs.rename(src_dir, dst_dir)
+      assert_true(self.fs.exists(dst_dir))
+      assert_false(self.fs.exists(src_dir))
+
+      dst_ls = self.fs.listdir(dst_dir)
+      eq_(2, len(dst_ls))
+      assert_true('file_one.txt' in dst_ls)
+      assert_true('file_two.txt' in dst_ls)
+
+      # Assert that only the renamed directory, and not an empty file, exists
+      bucket_ls = self.bucket.list()
+      assert_equal(1, len([key for key in bucket_ls if key.name.strip('/') == self.get_key(dst_dir).name.strip('/')]))
+
+
   def test_rename_star(self):
     src_dir = self.get_test_path('test_rename_star_src')
     dst_dir = self.get_test_path('test_rename_star_dst')