浏览代码

Merge pull request #5901 from brunobehnken/master

Adding try/finally block to make sure cleanup happens
TW 3 年之前
父节点
当前提交
40eaaf2cfb
共有 1 个文件被更改,包括 12 次插入10 次删除
  1. 12 10
      src/borg/archiver.py

+ 12 - 10
src/borg/archiver.py

@@ -456,16 +456,18 @@ class Archiver:
 
 
         @contextmanager
         @contextmanager
         def test_files(path, count, size, random):
         def test_files(path, count, size, random):
-            path = os.path.join(path, 'borg-test-data')
-            os.makedirs(path)
-            z_buff = None if random else memoryview(zeros)[:size] if size <= len(zeros) else b'\0' * size
-            for i in range(count):
-                fname = os.path.join(path, 'file_%d' % i)
-                data = z_buff if not random else os.urandom(size)
-                with SyncFile(fname, binary=True) as fd:  # used for posix_fadvise's sake
-                    fd.write(data)
-            yield path
-            shutil.rmtree(path)
+            try:
+                path = os.path.join(path, 'borg-test-data')
+                os.makedirs(path)
+                z_buff = None if random else memoryview(zeros)[:size] if size <= len(zeros) else b'\0' * size
+                for i in range(count):
+                    fname = os.path.join(path, 'file_%d' % i)
+                    data = z_buff if not random else os.urandom(size)
+                    with SyncFile(fname, binary=True) as fd:  # used for posix_fadvise's sake
+                        fd.write(data)
+                yield path
+            finally:
+                shutil.rmtree(path)
 
 
         if '_BORG_BENCHMARK_CRUD_TEST' in os.environ:
         if '_BORG_BENCHMARK_CRUD_TEST' in os.environ:
             tests = [
             tests = [