Răsfoiți Sursa

Merge pull request #9185 from ThomasWaldmann/tests-fs-cleanup-master

Tests fs cleanup (master)
TW 2 săptămâni în urmă
părinte
comite
2c2b0343b2

+ 6 - 1
src/borg/conftest.py

@@ -1,4 +1,5 @@
 import os
+import shutil
 
 import pytest
 
@@ -24,10 +25,13 @@ def clean_env(tmpdir_factory, monkeypatch):
     for key in keys:
         monkeypatch.delenv(key, raising=False)
     # avoid that we access / modify the user's normal .config / .cache directory:
-    monkeypatch.setenv("BORG_BASE_DIR", str(tmpdir_factory.mktemp("borg-base-dir")))
+    base_dir = tmpdir_factory.mktemp("borg-base-dir")
+    monkeypatch.setenv("BORG_BASE_DIR", str(base_dir))
     # Speed up tests
     monkeypatch.setenv("BORG_TESTONLY_WEAKEN_KDF", "1")
     monkeypatch.setenv("BORG_STORE_DATA_LEVELS", "0")  # flat storage for few objects
+    yield
+    shutil.rmtree(str(base_dir), ignore_errors=True)  # clean up
 
 
 def pytest_report_header(config, start_path):
@@ -116,6 +120,7 @@ def archiver(tmp_path, set_env_variables):
     os.chdir(archiver.tmpdir)
     yield archiver
     os.chdir(old_wd)
+    shutil.rmtree(archiver.tmpdir, ignore_errors=True)  # clean up
 
 
 @pytest.fixture()

+ 7 - 5
src/borg/testsuite/archiver/__init__.py

@@ -514,10 +514,12 @@ def fuse_mount(archiver, mountpoint=None, *options, fork=True, os_fork=False, **
             # with the call to `cmd`, above.
             yield
             return
-    wait_for_mountstate(mountpoint, mounted=True)
-    yield
-    umount(mountpoint)
-    wait_for_mountstate(mountpoint, mounted=False)
-    os.rmdir(mountpoint)
+    try:
+        wait_for_mountstate(mountpoint, mounted=True)
+        yield
+    finally:
+        umount(mountpoint)
+        wait_for_mountstate(mountpoint, mounted=False)
+        os.rmdir(mountpoint)
     # Give the daemon some time to exit
     time.sleep(0.2)

+ 5 - 5
src/borg/testsuite/platform/freebsd_test.py

@@ -86,11 +86,11 @@ def test_access_acl():
 
 @skipif_acls_not_working
 def test_default_acl():
-    tmpdir = tempfile.mkdtemp()
-    assert get_acl(tmpdir) == {}
-    set_acl(tmpdir, access=ACCESS_ACL, default=DEFAULT_ACL)
-    assert get_acl(tmpdir)["acl_access"] == ACCESS_ACL
-    assert get_acl(tmpdir)["acl_default"] == DEFAULT_ACL
+    with tempfile.TemporaryDirectory() as tmpdir:
+        assert get_acl(tmpdir) == {}
+        set_acl(tmpdir, access=ACCESS_ACL, default=DEFAULT_ACL)
+        assert get_acl(tmpdir)["acl_access"] == ACCESS_ACL
+        assert get_acl(tmpdir)["acl_default"] == DEFAULT_ACL
 
 
 # nfs4 acls testing not implemented.

+ 5 - 5
src/borg/testsuite/platform/linux_test.py

@@ -72,11 +72,11 @@ def test_access_acl():
 
 @skipif_acls_not_working
 def test_default_acl():
-    tmpdir = tempfile.mkdtemp()
-    assert get_acl(tmpdir) == {}
-    set_acl(tmpdir, access=ACCESS_ACL, default=DEFAULT_ACL)
-    assert get_acl(tmpdir)["acl_access"] == ACCESS_ACL
-    assert get_acl(tmpdir)["acl_default"] == DEFAULT_ACL
+    with tempfile.TemporaryDirectory() as tmpdir:
+        assert get_acl(tmpdir) == {}
+        set_acl(tmpdir, access=ACCESS_ACL, default=DEFAULT_ACL)
+        assert get_acl(tmpdir)["acl_access"] == ACCESS_ACL
+        assert get_acl(tmpdir)["acl_default"] == DEFAULT_ACL
 
 
 @skipif_acls_not_working