Просмотр исходного кода

Merge pull request #9231 from ThomasWaldmann/enoattr

move ENOATTR to borg.platform
TW 3 дней назад
Родитель
Сommit
a0e250df0a

+ 2 - 2
src/borg/fuse.py

@@ -12,7 +12,7 @@ from signal import SIGINT
 
 from .constants import ROBJ_FILE_STREAM, zeros
 from .fuse_impl import llfuse, has_pyfuse3
-
+from .platform import ENOATTR
 
 if has_pyfuse3:
     import trio
@@ -638,7 +638,7 @@ class FuseOperations(llfuse.Operations, FuseBackend):
         try:
             return item.get("xattrs", {})[name] or b""
         except KeyError:
-            raise llfuse.FUSEError(llfuse.ENOATTR) from None
+            raise llfuse.FUSEError(ENOATTR) from None
 
     @async_wrapper
     def lookup(self, parent_inode, name, ctx=None):

+ 5 - 1
src/borg/platform/base.py

@@ -24,7 +24,11 @@ API_VERSION = "1.2_05"
 fdatasync = getattr(os, "fdatasync", os.fsync)
 has_posix_fadvise = hasattr(os, "posix_fadvise")
 
-from .xattr import ENOATTR
+try:
+    ENOATTR = errno.ENOATTR  # type: ignore[attr-defined]
+except AttributeError:
+    # on some platforms, ENOATTR is missing, use ENODATA there
+    ENOATTR = errno.ENODATA  # type: ignore[attr-defined]
 
 
 def listxattr(path, *, follow_symlinks=False):

+ 0 - 7
src/borg/platform/xattr.py

@@ -4,13 +4,6 @@ import os
 from ..helpers import Buffer
 
 
-try:
-    ENOATTR = errno.ENOATTR  # type: ignore[attr-defined]
-except AttributeError:
-    # on some platforms, ENOATTR is missing, use ENODATA there
-    ENOATTR = errno.ENODATA  # type: ignore[attr-defined]
-
-
 buffer = Buffer(bytearray, limit=2**24)
 
 

+ 2 - 1
src/borg/testsuite/archiver/mount_cmds_test.py

@@ -7,6 +7,7 @@ import pytest
 
 from ... import xattr, platform
 from ...constants import *  # NOQA
+from ...platform import ENOATTR
 from ...storelocking import Lock
 from ...helpers import flags_noatime, flags_normal
 from .. import has_lchflags, llfuse
@@ -155,7 +156,7 @@ def test_fuse(archivers, request):
                 try:
                     xattr.getxattr(out_fn, b"user.foo")
                 except OSError as e:
-                    assert e.errno == llfuse.ENOATTR
+                    assert e.errno == ENOATTR
                 else:
                     assert False, "expected OSError(ENOATTR), but no error was raised"
         except OSError as err: