Author: Ronan Lamy <[email protected]>
Branch: py3.5
Changeset: r93517:0c9668c522b1
Date: 2017-12-20 14:01 +0000
http://bitbucket.org/pypy/pypy/changeset/0c9668c522b1/
Log: Fix error reporting from posix.*xattr functions
diff --git a/pypy/module/posix/interp_posix.py
b/pypy/module/posix/interp_posix.py
--- a/pypy/module/posix/interp_posix.py
+++ b/pypy/module/posix/interp_posix.py
@@ -2301,13 +2301,13 @@
try:
result = rposix.fgetxattr(path.as_fd, attribute.as_bytes)
except OSError as e:
- raise wrap_oserror(space, e, eintr_retry=False)
+ raise wrap_oserror(space, e, path.as_bytes)
else:
try:
result = rposix.getxattr(path.as_bytes, attribute.as_bytes,
follow_symlinks=follow_symlinks)
except OSError as e:
- raise wrap_oserror(space, e, eintr_retry=False)
+ raise wrap_oserror(space, e, path.as_bytes)
return space.newbytes(result)
@unwrap_spec(path=path_or_fd(), attribute=path_or_fd(allow_fd=False),
@@ -2330,13 +2330,13 @@
try:
rposix.fsetxattr(path.as_fd, attribute.as_bytes, value)
except OSError as e:
- raise wrap_oserror(space, e, eintr_retry=False)
+ raise wrap_oserror(space, e, path.as_bytes)
else:
try:
rposix.setxattr(path.as_bytes, attribute.as_bytes, value,
follow_symlinks=follow_symlinks)
except OSError as e:
- raise wrap_oserror(space, e, eintr_retry=False)
+ raise wrap_oserror(space, e, path.as_bytes)
@unwrap_spec(path=path_or_fd(), attribute=path_or_fd(allow_fd=False),
@@ -2356,13 +2356,13 @@
try:
rposix.fremovexattr(path.as_fd, attribute.as_bytes)
except OSError as e:
- raise wrap_oserror(space, e, eintr_retry=False)
+ raise wrap_oserror(space, e, path.as_bytes)
else:
try:
rposix.removexattr(path.as_bytes, attribute.as_bytes,
follow_symlinks=follow_symlinks)
except OSError as e:
- raise wrap_oserror(space, e, eintr_retry=False)
+ raise wrap_oserror(space, e, path.as_bytes)
@unwrap_spec(path=path_or_fd(), follow_symlinks=bool)
@@ -2388,9 +2388,8 @@
try:
result = rposix.listxattr(path.as_bytes, follow_symlinks)
except OSError as e:
- raise wrap_oserror(space, e, eintr_retry=False)
- return space.newlist([
- space.fsdecode(space.newbytes(attr)) for attr in result])
+ raise wrap_oserror(space, e, path.as_bytes)
+ return space.newlist([space.newfilename(attr) for attr in result])
have_functions = []
diff --git a/pypy/module/posix/test/test_posix2.py
b/pypy/module/posix/test/test_posix2.py
--- a/pypy/module/posix/test/test_posix2.py
+++ b/pypy/module/posix/test/test_posix2.py
@@ -1448,7 +1448,8 @@
with open(self.path, 'wb'):
pass
init_names = os.listxattr(self.path)
- raises(OSError, os.getxattr, self.path, 'user.test')
+ excinfo = raises(OSError, os.getxattr, self.path, 'user.test')
+ assert excinfo.value.filename == self.path
os.setxattr(self.path, 'user.test', b'', os.XATTR_CREATE,
follow_symlinks=False)
assert os.getxattr(self.path, 'user.test') == b''
os.setxattr(self.path, b'user.test', b'foo', os.XATTR_REPLACE)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit