Explorar el Código

benchmark crud: use TemporaryDirectory below given path, fixes #4706

Thomas Waldmann hace 2 años
padre
commit
08a2db9410
Se han modificado 1 ficheros con 2 adiciones y 6 borrados
  1. 2 6
      src/borg/archiver/benchmark_cmd.py

+ 2 - 6
src/borg/archiver/benchmark_cmd.py

@@ -2,7 +2,7 @@ import argparse
 from contextlib import contextmanager
 import functools
 import os
-import shutil
+import tempfile
 import time
 
 from ..constants import *  # NOQA
@@ -60,9 +60,7 @@ class BenchmarkMixIn:
 
         @contextmanager
         def test_files(path, count, size, random):
-            try:
-                path = os.path.join(path, "borg-test-data")
-                os.makedirs(path)
+            with tempfile.TemporaryDirectory(prefix="borg-test-data-", dir=path) as 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)
@@ -70,8 +68,6 @@ class BenchmarkMixIn:
                     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:
             tests = [("Z-TEST", 1, 1, False), ("R-TEST", 1, 1, True)]