Python 3.3 added the dir_fd and follow_symlinks keyword arguments to os.chown; it also added the shutil.chown function. Unfortunately the latter, while useful, does not support these new keyword arguments. It would be helpful if it did.
Looks good to me. But aren't the last two lines skipped if an error is raised by the first line from the with block? + with self.assertRaises(FileNotFoundError): + shutil.chown('invalid-file', user=uid, dir_fd=dirfd) + shutil.chown('invalid-file', group=gid, dir_fd=dirfd) + shutil.chown('invalid-file', user=uid, group=gid, dir_fd=dirfd)
I got a failure on FreeBSD: [1/1] test_shutil test test_shutil failed -- Traceback (most recent call last): File "/tank/libs/cpython/Lib/test/test_shutil.py", line 1258, in test_chown shutil.chown(os.path.basename(filename), dir_fd=dirfd) File "/tank/libs/cpython/Lib/shutil.py", line 983, in chown raise ValueError("user and/or group must be set") ValueError: user and/or group must be set It seems that either user or group argument must be passed along with dir_fd.
Hi everybody, I just submitted a PR for this issue. It's my first contribution to the cPython project so please let me know if I need to change anything.