mirror of
https://github.com/django/django.git
synced 2025-10-14 20:41:00 +00:00
Fixed #23911 -- Added support for buffer file uploads in the test client
This commit is contained in:
parent
dc2d75f4d4
commit
018d110ef5
5 changed files with 47 additions and 4 deletions
|
@ -17,7 +17,7 @@ from django.test import TestCase, client
|
|||
from django.test import override_settings
|
||||
from django.utils.encoding import force_bytes
|
||||
from django.utils.http import urlquote
|
||||
from django.utils.six import StringIO
|
||||
from django.utils.six import BytesIO, StringIO
|
||||
|
||||
from . import uploadhandler
|
||||
from .models import FileModel
|
||||
|
@ -262,6 +262,34 @@ class FileUploadTests(TestCase):
|
|||
self.assertLess(len(got), 256,
|
||||
"Got a long file name (%s characters)." % len(got))
|
||||
|
||||
def test_file_content(self):
|
||||
tdir = tempfile.gettempdir()
|
||||
|
||||
file = tempfile.NamedTemporaryFile
|
||||
with file(suffix=".ctype_extra", dir=tdir) as no_content_type, \
|
||||
file(suffix=".ctype_extra", dir=tdir) as simple_file:
|
||||
no_content_type.write(b'no content')
|
||||
no_content_type.seek(0)
|
||||
|
||||
simple_file.write(b'text content')
|
||||
simple_file.seek(0)
|
||||
simple_file.content_type = 'text/plain'
|
||||
|
||||
string_io = StringIO('string content')
|
||||
bytes_io = BytesIO(b'binary content')
|
||||
|
||||
response = self.client.post('/echo_content/', {
|
||||
'no_content_type': no_content_type,
|
||||
'simple_file': simple_file,
|
||||
'string': string_io,
|
||||
'binary': bytes_io,
|
||||
})
|
||||
received = json.loads(response.content.decode('utf-8'))
|
||||
self.assertEqual(received['no_content_type'], 'no content')
|
||||
self.assertEqual(received['simple_file'], 'text content')
|
||||
self.assertEqual(received['string'], 'string content')
|
||||
self.assertEqual(received['binary'], 'binary content')
|
||||
|
||||
def test_content_type_extra(self):
|
||||
"""Uploaded files may have content type parameters available."""
|
||||
tdir = tempfile.gettempdir()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue