Refs #27777 -- Improved docs/added test for File context manager change.

This commit is contained in:
Ingo Klöcker 2017-04-07 15:41:39 +02:00 committed by Tim Graham
parent eee34ef64c
commit 6bb3b2bff4
3 changed files with 18 additions and 3 deletions

View file

@ -3,6 +3,7 @@ import sys
import unittest
from django.core.files import temp
from django.core.files.base import ContentFile
from django.core.files.uploadedfile import TemporaryUploadedFile
from django.db.utils import IntegrityError
from django.test import TestCase, override_settings
@ -83,3 +84,13 @@ class FileFieldTests(TestCase):
tmp_file_path = tmp_file.temporary_file_path()
Document.objects.create(myfile=tmp_file)
self.assertFalse(os.path.exists(tmp_file_path), 'Temporary file still exists')
def test_open_returns_self(self):
"""
FieldField.open() returns self so it can be used as a context manager.
"""
d = Document.objects.create(myfile='something.txt')
# Replace the FileField's file with an in-memory ContentFile, so that
# open() doesn't write to disk.
d.myfile.file = ContentFile(b'', name='bla')
self.assertEqual(d.myfile, d.myfile.open())