Test large files

This commit is contained in:
Brais Gabín 2016-07-21 15:21:00 +02:00
parent 0f61c9ec29
commit da11d567aa

View File

@ -3,7 +3,9 @@
from __future__ import unicode_literals from __future__ import unicode_literals
from django import forms from django import forms
from django.core.files.uploadhandler import MemoryFileUploadHandler from django.core.files.uploadhandler import (
MemoryFileUploadHandler, TemporaryFileUploadHandler
)
from django.test import TestCase from django.test import TestCase
from django.utils.six.moves import StringIO from django.utils.six.moves import StringIO
@ -39,7 +41,7 @@ class TestFileUploadParser(TestCase):
"Test text file".encode('utf-8') "Test text file".encode('utf-8')
) )
request = MockRequest() request = MockRequest()
request.upload_handlers = (MemoryFileUploadHandler(),) request.upload_handlers = (MemoryFileUploadHandler(), TemporaryFileUploadHandler(),)
request.META = { request.META = {
'HTTP_CONTENT_DISPOSITION': 'Content-Disposition: inline; filename=file.txt', 'HTTP_CONTENT_DISPOSITION': 'Content-Disposition: inline; filename=file.txt',
'HTTP_CONTENT_LENGTH': 14, 'HTTP_CONTENT_LENGTH': 14,
@ -66,6 +68,18 @@ class TestFileUploadParser(TestCase):
with self.assertRaises(ParseError): with self.assertRaises(ParseError):
parser.parse(self.stream, None, self.parser_context) parser.parse(self.stream, None, self.parser_context)
def test_parse_missing_filename_large_file(self):
"""
Parse large raw file upload when filename is missing.
"""
from django.conf import settings
self.parser_context['request'].META['HTTP_CONTENT_LENGTH'] = settings.FILE_UPLOAD_MAX_MEMORY_SIZE + 1
parser = FileUploadParser()
self.stream.seek(0)
self.parser_context['request'].META['HTTP_CONTENT_DISPOSITION'] = ''
with self.assertRaises(ParseError):
parser.parse(self.stream, None, self.parser_context)
def test_parse_missing_filename_multiple_upload_handlers(self): def test_parse_missing_filename_multiple_upload_handlers(self):
""" """
Parse raw file upload with multiple handlers when filename is missing. Parse raw file upload with multiple handlers when filename is missing.