diff --git a/tests/test_parsers.py b/tests/test_parsers.py index 1e0f2e17fa..96a71d669e 100644 --- a/tests/test_parsers.py +++ b/tests/test_parsers.py @@ -3,7 +3,9 @@ from __future__ import unicode_literals 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.utils.six.moves import StringIO @@ -39,7 +41,7 @@ class MockRequest(object): "Test text file".encode('utf-8') ) request = MockRequest() - request.upload_handlers = (MemoryFileUploadHandler(),) + request.upload_handlers = (MemoryFileUploadHandler(), TemporaryFileUploadHandler(),) request.META = { 'HTTP_CONTENT_DISPOSITION': 'Content-Disposition: inline; filename=file.txt', 'HTTP_CONTENT_LENGTH': 14, @@ -66,6 +68,18 @@ def test_parse_missing_filename(self): with self.assertRaises(ParseError): 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): """ Parse raw file upload with multiple handlers when filename is missing.
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: