Author: Ronan Lamy <ronan.l...@gmail.com> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit