瀏覽代碼

mac and posix tests converted, removed BaseTestCase and unittest

bigtedde 1 年之前
父節點
當前提交
d2dd792164
共有 1 個文件被更改,包括 48 次插入55 次删除
  1. 48 55
      src/borg/testsuite/platform.py

+ 48 - 55
src/borg/testsuite/platform.py

@@ -5,6 +5,8 @@ import sys
 import tempfile
 import tempfile
 import unittest
 import unittest
 
 
+import pytest
+
 from ..platformflags import is_win32
 from ..platformflags import is_win32
 from ..platform import acl_get, acl_set, swidth
 from ..platform import acl_get, acl_set, swidth
 from ..platform import get_process_id, process_alive
 from ..platform import get_process_id, process_alive
@@ -161,68 +163,59 @@ class PlatformLinuxTestCase(BaseTestCase):
         self.assert_equal(acl_use_local_uid_gid(b"group:root:rw-:0"), b"group:0:rw-")
         self.assert_equal(acl_use_local_uid_gid(b"group:root:rw-:0"), b"group:0:rw-")
 
 
 
 
-@unittest.skipUnless(sys.platform.startswith("darwin"), "macOS only test")
-@unittest.skipIf(fakeroot_detected(), "not compatible with fakeroot")
-class PlatformDarwinTestCase(BaseTestCase):
-    def setUp(self):
-        self.tmpdir = tempfile.mkdtemp()
-
-    def tearDown(self):
-        shutil.rmtree(self.tmpdir)
-
-    def get_acl(self, path, numeric_ids=False):
+@pytest.mark.skipif(not sys.platform.startswith("darwin"), reason="macOS only test")
+@pytest.mark.skipif(fakeroot_detected(), reason="not compatible with fakeroot")
+@pytest.mark.skipIf(not are_acls_working(), "ACLs do not work")
+def test_platform_darwin_access_acl(tmp_path):
+    def get_acl(path, numeric_ids=False):
         item = {}
         item = {}
         acl_get(path, item, os.stat(path), numeric_ids=numeric_ids)
         acl_get(path, item, os.stat(path), numeric_ids=numeric_ids)
         return item
         return item
 
 
-    def set_acl(self, path, acl, numeric_ids=False):
+    def set_acl(path, acl, numeric_ids=False):
         item = {"acl_extended": acl}
         item = {"acl_extended": acl}
         acl_set(path, item, numeric_ids=numeric_ids)
         acl_set(path, item, numeric_ids=numeric_ids)
 
 
-    @unittest.skipIf(not are_acls_working(), "ACLs do not work")
-    def test_access_acl(self):
-        file = tempfile.NamedTemporaryFile()
-        file2 = tempfile.NamedTemporaryFile()
-        self.assert_equal(self.get_acl(file.name), {})
-        self.set_acl(
-            file.name,
-            b"!#acl 1\n"
-            b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:staff:0:allow:read\n"
-            b"user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:read\n",
-            numeric_ids=False,
-        )
-        self.assert_in(
-            b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014:staff:20:allow:read", self.get_acl(file.name)["acl_extended"]
-        )
-        self.assert_in(
-            b"user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:read", self.get_acl(file.name)["acl_extended"]
-        )
-        self.set_acl(
-            file2.name,
-            b"!#acl 1\n"
-            b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:staff:0:allow:read\n"
-            b"user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:read\n",
-            numeric_ids=True,
-        )
-        self.assert_in(
-            b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:wheel:0:allow:read", self.get_acl(file2.name)["acl_extended"]
-        )
-        self.assert_in(
-            b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000::0:allow:read",
-            self.get_acl(file2.name, numeric_ids=True)["acl_extended"],
-        )
-
-
-@unittest.skipUnless(sys.platform.startswith(("linux", "freebsd", "darwin")), "POSIX only tests")
-class PlatformPosixTestCase(BaseTestCase):
-    def test_swidth_ascii(self):
-        self.assert_equal(swidth("borg"), 4)
-
-    def test_swidth_cjk(self):
-        self.assert_equal(swidth("バックアップ"), 6 * 2)
-
-    def test_swidth_mixed(self):
-        self.assert_equal(swidth("borgバックアップ"), 4 + 6 * 2)
+    file = tempfile.NamedTemporaryFile()
+    file2 = tempfile.NamedTemporaryFile()
+    assert get_acl(file.name) == {}
+    set_acl(
+        file.name,
+        b"!#acl 1\n"
+        b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:staff:0:allow:read\n"
+        b"user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:read\n",
+        numeric_ids=False,
+    )
+    assert b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000014:staff:20:allow:read" in get_acl(file.name)["acl_extended"]
+    assert b"user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:read" in get_acl(file.name)["acl_extended"]
+
+    set_acl(
+        file2.name,
+        b"!#acl 1\n"
+        b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:staff:0:allow:read\n"
+        b"user:FFFFEEEE-DDDD-CCCC-BBBB-AAAA00000000:root:0:allow:read\n",
+        numeric_ids=True,
+    )
+    assert b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000:wheel:0:allow:read" in get_acl(file2.name)["acl_extended"]
+    assert (
+        b"group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF00000000::0:allow:read"
+        in get_acl(file2.name, numeric_ids=True)["acl_extended"]
+    )
+
+
+@pytest.mark.skipif(not sys.platform.startswith(("linux", "freebsd", "darwin")), reason="POSIX only tests")
+def test_platform_posix_swidth_ascii():
+    assert swidth("borg") == 4
+
+
+@pytest.mark.skipif(not sys.platform.startswith(("linux", "freebsd", "darwin")), reason="POSIX only tests")
+def test_platform_posix_swidth_cjk():
+    assert swidth("バックアップ") == 6 * 2
+
+
+@pytest.mark.skipif(not sys.platform.startswith(("linux", "freebsd", "darwin")), reason="POSIX only tests")
+def test_splatform_posix_width_mixed():
+    assert swidth("borgバックアップ") == 4 + 6 * 2
 
 
 
 
 def test_process_alive(free_pid):
 def test_process_alive(free_pid):