Fixed #20660 -- Do not try to delete an unset FieldFile
Thanks stanislas.guerra at gmail.com for the report and Baptiste Mispelon for the review.
This commit is contained in:
parent
b5f709e6f4
commit
ea3fe78a9d
|
@ -96,6 +96,8 @@ class FieldFile(File):
|
|||
save.alters_data = True
|
||||
|
||||
def delete(self, save=True):
|
||||
if not self:
|
||||
return
|
||||
# Only close the file if it's already open, which we know by the
|
||||
# presence of self._file
|
||||
if hasattr(self, '_file'):
|
||||
|
|
|
@ -432,6 +432,17 @@ class FileFieldTests(unittest.TestCase):
|
|||
field.save_form_data(d, 'else.txt')
|
||||
self.assertEqual(d.myfile, 'else.txt')
|
||||
|
||||
def test_delete_when_file_unset(self):
|
||||
"""
|
||||
Calling delete on an unset FileField should not call the file deletion
|
||||
process, but fail silently (#20660).
|
||||
"""
|
||||
d = Document()
|
||||
try:
|
||||
d.myfile.delete()
|
||||
except OSError:
|
||||
self.fail("Deleting an unset FileField should not raise OSError.")
|
||||
|
||||
|
||||
class BinaryFieldTests(test.TestCase):
|
||||
binary_data = b'\x00\x46\xFE'
|
||||
|
|
Loading…
Reference in New Issue