33from __future__ import unicode_literals
44
55from django import forms
6- from django .core .files .uploadhandler import MemoryFileUploadHandler
6+ from django .core .files .uploadhandler import MemoryFileUploadHandler , TemporaryFileUploadHandler
77from django .test import TestCase
88from django .utils .six .moves import StringIO
99
@@ -39,7 +39,7 @@ class MockRequest(object):
3939 "Test text file" .encode ('utf-8' )
4040 )
4141 request = MockRequest ()
42- request .upload_handlers = (MemoryFileUploadHandler (),)
42+ request .upload_handlers = (MemoryFileUploadHandler (), TemporaryFileUploadHandler (), )
4343 request .META = {
4444 'HTTP_CONTENT_DISPOSITION' : 'Content-Disposition: inline; filename=file.txt' ,
4545 'HTTP_CONTENT_LENGTH' : 14 ,
@@ -66,6 +66,18 @@ def test_parse_missing_filename(self):
6666 with self .assertRaises (ParseError ):
6767 parser .parse (self .stream , None , self .parser_context )
6868
69+ def test_parse_missing_filename_large_file (self ):
70+ """
71+ Parse large raw file upload when filename is missing.
72+ """
73+ from django .conf import settings
74+ self .parser_context ['request' ].META ['HTTP_CONTENT_LENGTH' ] = settings .FILE_UPLOAD_MAX_MEMORY_SIZE + 1
75+ parser = FileUploadParser ()
76+ self .stream .seek (0 )
77+ self .parser_context ['request' ].META ['HTTP_CONTENT_DISPOSITION' ] = ''
78+ with self .assertRaises (ParseError ):
79+ parser .parse (self .stream , None , self .parser_context )
80+
6981 def test_parse_missing_filename_multiple_upload_handlers (self ):
7082 """
7183 Parse raw file upload with multiple handlers when filename is missing.
0 commit comments