mirror of
https://github.com/django/django.git
synced 2024-12-22 00:55:44 +00:00
Fixed #35323 -- Prevented file_move_safe() from trying to overwrite existing file when allow_overwrite is False.
This commit is contained in:
parent
b6e2b83901
commit
07c8d979ae
@ -32,13 +32,12 @@ def file_move_safe(
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
try:
|
||||
if not allow_overwrite and os.access(new_file_name, os.F_OK):
|
||||
raise FileExistsError(
|
||||
"Destination file %s exists and allow_overwrite is False."
|
||||
% new_file_name
|
||||
)
|
||||
if not allow_overwrite and os.access(new_file_name, os.F_OK):
|
||||
raise FileExistsError(
|
||||
f"Destination file {new_file_name} exists and allow_overwrite is False."
|
||||
)
|
||||
|
||||
try:
|
||||
os.rename(old_file_name, new_file_name)
|
||||
return
|
||||
except OSError:
|
||||
|
@ -426,9 +426,10 @@ class FileMoveSafeTests(unittest.TestCase):
|
||||
handle_a, self.file_a = tempfile.mkstemp()
|
||||
handle_b, self.file_b = tempfile.mkstemp()
|
||||
|
||||
# file_move_safe() raises OSError if the destination file exists and
|
||||
# allow_overwrite is False.
|
||||
with self.assertRaises(FileExistsError):
|
||||
# file_move_safe() raises FileExistsError if the destination file
|
||||
# exists and allow_overwrite is False.
|
||||
msg = r"Destination file .* exists and allow_overwrite is False\."
|
||||
with self.assertRaisesRegex(FileExistsError, msg):
|
||||
file_move_safe(self.file_a, self.file_b, allow_overwrite=False)
|
||||
|
||||
# should allow it and continue on if allow_overwrite is True
|
||||
|
Loading…
Reference in New Issue
Block a user