mirror of
				https://github.com/django/django.git
				synced 2025-10-27 23:56:08 +00:00 
			
		
		
		
	Merge pull request #1566 from adamsc64/ticket_11857
Fixed #11857 -- Added missing 'closed' property on TemporaryFile class.
This commit is contained in:
		
							
								
								
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -57,6 +57,7 @@ answer newbie questions, and generally made Django that much better: | ||||
|  | ||||
|     Gisle Aas <gisle@aas.no> | ||||
|     Chris Adams | ||||
|     Christopher Adams <christopher.r.adams@gmail.com> | ||||
|     Mathieu Agopian <mathieu.agopian@gmail.com> | ||||
|     Roberto Aguilar <roberto@baremetal.io> | ||||
|     ajs <adi@sieker.info> | ||||
|   | ||||
| @@ -46,6 +46,15 @@ if os.name == 'nt': | ||||
|                 except (OSError): | ||||
|                     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): | ||||
|             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.base import ContentFile | ||||
| from django.core.files.uploadedfile import SimpleUploadedFile | ||||
| from django.core.files.temp import NamedTemporaryFile | ||||
| from django.test import TestCase | ||||
| from django.utils.six import StringIO | ||||
|  | ||||
| @@ -142,6 +143,20 @@ class FileTests(unittest.TestCase): | ||||
|         self.assertTrue(f.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): | ||||
|         # Should not set mode to None if it is not present. | ||||
|         # See #14681, stdlib gzip module crashes if mode is set to None | ||||
|   | ||||
		Reference in New Issue
	
	Block a user