mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Refs #33476 -- Reformatted code with Black.
This commit is contained in:
committed by
Mariusz Felisiak
parent
f68fa8b45d
commit
9c19aff7c7
@@ -17,39 +17,38 @@ from .models import Document
|
||||
|
||||
|
||||
class FileFieldTests(TestCase):
|
||||
|
||||
def test_clearable(self):
|
||||
"""
|
||||
FileField.save_form_data() will clear its instance attribute value if
|
||||
passed False.
|
||||
"""
|
||||
d = Document(myfile='something.txt')
|
||||
self.assertEqual(d.myfile, 'something.txt')
|
||||
field = d._meta.get_field('myfile')
|
||||
d = Document(myfile="something.txt")
|
||||
self.assertEqual(d.myfile, "something.txt")
|
||||
field = d._meta.get_field("myfile")
|
||||
field.save_form_data(d, False)
|
||||
self.assertEqual(d.myfile, '')
|
||||
self.assertEqual(d.myfile, "")
|
||||
|
||||
def test_unchanged(self):
|
||||
"""
|
||||
FileField.save_form_data() considers None to mean "no change" rather
|
||||
than "clear".
|
||||
"""
|
||||
d = Document(myfile='something.txt')
|
||||
self.assertEqual(d.myfile, 'something.txt')
|
||||
field = d._meta.get_field('myfile')
|
||||
d = Document(myfile="something.txt")
|
||||
self.assertEqual(d.myfile, "something.txt")
|
||||
field = d._meta.get_field("myfile")
|
||||
field.save_form_data(d, None)
|
||||
self.assertEqual(d.myfile, 'something.txt')
|
||||
self.assertEqual(d.myfile, "something.txt")
|
||||
|
||||
def test_changed(self):
|
||||
"""
|
||||
FileField.save_form_data(), if passed a truthy value, updates its
|
||||
instance attribute.
|
||||
"""
|
||||
d = Document(myfile='something.txt')
|
||||
self.assertEqual(d.myfile, 'something.txt')
|
||||
field = d._meta.get_field('myfile')
|
||||
field.save_form_data(d, 'else.txt')
|
||||
self.assertEqual(d.myfile, 'else.txt')
|
||||
d = Document(myfile="something.txt")
|
||||
self.assertEqual(d.myfile, "something.txt")
|
||||
field = d._meta.get_field("myfile")
|
||||
field.save_form_data(d, "else.txt")
|
||||
self.assertEqual(d.myfile, "else.txt")
|
||||
|
||||
def test_delete_when_file_unset(self):
|
||||
"""
|
||||
@@ -60,33 +59,35 @@ class FileFieldTests(TestCase):
|
||||
d.myfile.delete()
|
||||
|
||||
def test_refresh_from_db(self):
|
||||
d = Document.objects.create(myfile='something.txt')
|
||||
d = Document.objects.create(myfile="something.txt")
|
||||
d.refresh_from_db()
|
||||
self.assertIs(d.myfile.instance, d)
|
||||
|
||||
@unittest.skipIf(sys.platform == 'win32', "Crashes with OSError on Windows.")
|
||||
@unittest.skipIf(sys.platform == "win32", "Crashes with OSError on Windows.")
|
||||
def test_save_without_name(self):
|
||||
with tempfile.NamedTemporaryFile(suffix='.txt') as tmp:
|
||||
document = Document.objects.create(myfile='something.txt')
|
||||
with tempfile.NamedTemporaryFile(suffix=".txt") as tmp:
|
||||
document = Document.objects.create(myfile="something.txt")
|
||||
document.myfile = File(tmp)
|
||||
msg = f"Detected path traversal attempt in '{tmp.name}'"
|
||||
with self.assertRaisesMessage(SuspiciousFileOperation, msg):
|
||||
document.save()
|
||||
|
||||
def test_defer(self):
|
||||
Document.objects.create(myfile='something.txt')
|
||||
self.assertEqual(Document.objects.defer('myfile')[0].myfile, 'something.txt')
|
||||
Document.objects.create(myfile="something.txt")
|
||||
self.assertEqual(Document.objects.defer("myfile")[0].myfile, "something.txt")
|
||||
|
||||
def test_unique_when_same_filename(self):
|
||||
"""
|
||||
A FileField with unique=True shouldn't allow two instances with the
|
||||
same name to be saved.
|
||||
"""
|
||||
Document.objects.create(myfile='something.txt')
|
||||
Document.objects.create(myfile="something.txt")
|
||||
with self.assertRaises(IntegrityError):
|
||||
Document.objects.create(myfile='something.txt')
|
||||
Document.objects.create(myfile="something.txt")
|
||||
|
||||
@unittest.skipIf(sys.platform == 'win32', "Windows doesn't support moving open files.")
|
||||
@unittest.skipIf(
|
||||
sys.platform == "win32", "Windows doesn't support moving open files."
|
||||
)
|
||||
# The file's source and destination must be on the same filesystem.
|
||||
@override_settings(MEDIA_ROOT=temp.gettempdir())
|
||||
def test_move_temporary_file(self):
|
||||
@@ -94,35 +95,43 @@ class FileFieldTests(TestCase):
|
||||
The temporary uploaded file is moved rather than copied to the
|
||||
destination.
|
||||
"""
|
||||
with TemporaryUploadedFile('something.txt', 'text/plain', 0, 'UTF-8') as tmp_file:
|
||||
with TemporaryUploadedFile(
|
||||
"something.txt", "text/plain", 0, "UTF-8"
|
||||
) as tmp_file:
|
||||
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')
|
||||
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')
|
||||
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')
|
||||
d.myfile.file = ContentFile(b"", name="bla")
|
||||
self.assertEqual(d.myfile, d.myfile.open())
|
||||
|
||||
def test_media_root_pathlib(self):
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
with override_settings(MEDIA_ROOT=Path(tmp_dir)):
|
||||
with TemporaryUploadedFile('foo.txt', 'text/plain', 1, 'utf-8') as tmp_file:
|
||||
with TemporaryUploadedFile(
|
||||
"foo.txt", "text/plain", 1, "utf-8"
|
||||
) as tmp_file:
|
||||
Document.objects.create(myfile=tmp_file)
|
||||
self.assertTrue(os.path.exists(os.path.join(tmp_dir, 'unused', 'foo.txt')))
|
||||
self.assertTrue(
|
||||
os.path.exists(os.path.join(tmp_dir, "unused", "foo.txt"))
|
||||
)
|
||||
|
||||
def test_pickle(self):
|
||||
with tempfile.TemporaryDirectory() as tmp_dir:
|
||||
with override_settings(MEDIA_ROOT=Path(tmp_dir)):
|
||||
with open(__file__, 'rb') as fp:
|
||||
file1 = File(fp, name='test_file.py')
|
||||
document = Document(myfile='test_file.py')
|
||||
document.myfile.save('test_file.py', file1)
|
||||
with open(__file__, "rb") as fp:
|
||||
file1 = File(fp, name="test_file.py")
|
||||
document = Document(myfile="test_file.py")
|
||||
document.myfile.save("test_file.py", file1)
|
||||
try:
|
||||
dump = pickle.dumps(document)
|
||||
loaded_document = pickle.loads(dump)
|
||||
@@ -159,14 +168,15 @@ class FileFieldTests(TestCase):
|
||||
finally:
|
||||
document.myfile.delete()
|
||||
|
||||
@isolate_apps('model_fields')
|
||||
@isolate_apps("model_fields")
|
||||
def test_abstract_filefield_model(self):
|
||||
"""
|
||||
FileField.model returns the concrete model for fields defined in an
|
||||
abstract model.
|
||||
"""
|
||||
|
||||
class AbstractMyDocument(models.Model):
|
||||
myfile = models.FileField(upload_to='unused')
|
||||
myfile = models.FileField(upload_to="unused")
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
@@ -174,5 +184,5 @@ class FileFieldTests(TestCase):
|
||||
class MyDocument(AbstractMyDocument):
|
||||
pass
|
||||
|
||||
document = MyDocument(myfile='test_file.py')
|
||||
document = MyDocument(myfile="test_file.py")
|
||||
self.assertEqual(document.myfile.field.model, MyDocument)
|
||||
|
||||
Reference in New Issue
Block a user