Opened 20 months ago
Closed 20 months ago
#35323 closed Cleanup/optimization (fixed)
Fix FileExistsError in django/core/files/move.py.
| Reported by: | bcail | Owned by: | bcail |
|---|---|---|---|
| Component: | File uploads/storage | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | bcail | Triage Stage: | Ready for checkin |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
In file_move_safe(), if the destination exists and allow_overwrite is False, FileExistsError is raised - but it's immediately swallowed because it's inside a try block. The code goes on to try the manual copy process, and a new FileExistsError is raised in that code.
Change History (7)
comment:1 by , 20 months ago
| Component: | Uncategorized → File uploads/storage |
|---|---|
| Has patch: | set |
comment:2 by , 20 months ago
| Triage Stage: | Unreviewed → Accepted |
|---|---|
| Type: | Bug → Cleanup/optimization |
Makes sense, good catch!
I wonder if we could add a test that ensures that the first FileExistsError is not swallowed. Do you want to give that a try?
comment:3 by , 20 months ago
| Needs tests: | set |
|---|---|
| Patch needs improvement: | set |
comment:4 by , 20 months ago
| Needs tests: | unset |
|---|
Thanks, Natalia. I updated the PR with a test for that specific FileExistsError.
comment:5 by , 20 months ago
| Patch needs improvement: | unset |
|---|
comment:6 by , 20 months ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
| Triage Stage: | Accepted → Ready for checkin |
I opened a PR.