Closed 419ab78f-33bf-4c9e-994c-1dcf22375792 closed 2 months ago
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.
Hi. Would you like to provide a patch?
Here's a patch.
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.
I was looking for an easy patch to submit. I can take an attempt at this?
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.
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields: ```python assignee = None closed_at = None created_at =
labels = ['easy', 'type-feature', 'library']
title = 'shutil.chown should support dir_fd and follow_symlinks keyword arguments'
updated_at =
user = 'https://github.com/cjwatson'
```
bugs.python.org fields:
```python
activity =
actor = 'pconnell'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = ['Library (Lib)']
creation =
creator = 'cjwatson'
dependencies = []
files = ['35633']
hgrepos = []
issue_num = 18108
keywords = ['patch', 'easy']
message_count = 7.0
messages = ['190404', '220430', '220564', '220565', '221675', '346893', '351543']
nosy_count = 7.0
nosy_names = ['cjwatson', 'Claudiu.Popa', 'berker.peksag', 'hynek', 'pconnell', 'avi', 'ta1hia']
pr_nums = ['15811']
priority = 'normal'
resolution = None
stage = 'patch review'
status = 'open'
superseder = None
type = 'enhancement'
url = 'https://bugs.python.org/issue18108'
versions = ['Python 3.5']
```
Linked PRs