Merge pull request #1566 from adamsc64/ticket_11857
Fixed #11857 -- Added missing 'closed' property on TemporaryFile class.
This commit is contained in:
commit
926bc421d9
1
AUTHORS
1
AUTHORS
|
@ -57,6 +57,7 @@ answer newbie questions, and generally made Django that much better:
|
||||||
|
|
||||||
Gisle Aas <gisle@aas.no>
|
Gisle Aas <gisle@aas.no>
|
||||||
Chris Adams
|
Chris Adams
|
||||||
|
Christopher Adams <christopher.r.adams@gmail.com>
|
||||||
Mathieu Agopian <mathieu.agopian@gmail.com>
|
Mathieu Agopian <mathieu.agopian@gmail.com>
|
||||||
Roberto Aguilar <roberto@baremetal.io>
|
Roberto Aguilar <roberto@baremetal.io>
|
||||||
ajs <adi@sieker.info>
|
ajs <adi@sieker.info>
|
||||||
|
|
|
@ -46,6 +46,15 @@ if os.name == 'nt':
|
||||||
except (OSError):
|
except (OSError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@property
|
||||||
|
def closed(self):
|
||||||
|
"""
|
||||||
|
This attribute needs to be accessible in certain situations,
|
||||||
|
because this class is supposed to mock the API of the class
|
||||||
|
tempfile.NamedTemporaryFile in the Python standard library.
|
||||||
|
"""
|
||||||
|
return self.file.closed
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ from django.core.files import File
|
||||||
from django.core.files.move import file_move_safe
|
from django.core.files.move import file_move_safe
|
||||||
from django.core.files.base import ContentFile
|
from django.core.files.base import ContentFile
|
||||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||||
|
from django.core.files.temp import NamedTemporaryFile
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils.six import StringIO
|
from django.utils.six import StringIO
|
||||||
|
|
||||||
|
@ -142,6 +143,20 @@ class FileTests(unittest.TestCase):
|
||||||
self.assertTrue(f.closed)
|
self.assertTrue(f.closed)
|
||||||
self.assertTrue(orig_file.closed)
|
self.assertTrue(orig_file.closed)
|
||||||
|
|
||||||
|
def test_namedtemporaryfile_closes(self):
|
||||||
|
"""
|
||||||
|
The symbol django.core.files.NamedTemporaryFile is assigned as
|
||||||
|
a different class on different operating systems. In
|
||||||
|
any case, the result should minimally mock some of the API of
|
||||||
|
tempfile.NamedTemporaryFile from the Python standard library.
|
||||||
|
"""
|
||||||
|
tempfile = NamedTemporaryFile()
|
||||||
|
self.assertTrue(hasattr(tempfile, "closed"))
|
||||||
|
self.assertFalse(tempfile.closed)
|
||||||
|
|
||||||
|
tempfile.close()
|
||||||
|
self.assertTrue(tempfile.closed)
|
||||||
|
|
||||||
def test_file_mode(self):
|
def test_file_mode(self):
|
||||||
# Should not set mode to None if it is not present.
|
# Should not set mode to None if it is not present.
|
||||||
# See #14681, stdlib gzip module crashes if mode is set to None
|
# See #14681, stdlib gzip module crashes if mode is set to None
|
||||||
|
|
Loading…
Reference in New Issue