3
3
from __future__ import unicode_literals
4
4
5
5
from django import forms
6
- from django .core .files .uploadhandler import MemoryFileUploadHandler
6
+ from django .core .files .uploadhandler import (
7
+ MemoryFileUploadHandler , TemporaryFileUploadHandler
8
+ )
7
9
from django .test import TestCase
8
10
from django .utils .six .moves import StringIO
9
11
@@ -39,7 +41,7 @@ class MockRequest(object):
39
41
"Test text file" .encode ('utf-8' )
40
42
)
41
43
request = MockRequest ()
42
- request .upload_handlers = (MemoryFileUploadHandler (),)
44
+ request .upload_handlers = (MemoryFileUploadHandler (), TemporaryFileUploadHandler (), )
43
45
request .META = {
44
46
'HTTP_CONTENT_DISPOSITION' : 'Content-Disposition: inline; filename=file.txt' ,
45
47
'HTTP_CONTENT_LENGTH' : 14 ,
@@ -66,6 +68,18 @@ def test_parse_missing_filename(self):
66
68
with self .assertRaises (ParseError ):
67
69
parser .parse (self .stream , None , self .parser_context )
68
70
71
+ def test_parse_missing_filename_large_file (self ):
72
+ """
73
+ Parse large raw file upload when filename is missing.
74
+ """
75
+ from django .conf import settings
76
+ self .parser_context ['request' ].META ['HTTP_CONTENT_LENGTH' ] = settings .FILE_UPLOAD_MAX_MEMORY_SIZE + 1
77
+ parser = FileUploadParser ()
78
+ self .stream .seek (0 )
79
+ self .parser_context ['request' ].META ['HTTP_CONTENT_DISPOSITION' ] = ''
80
+ with self .assertRaises (ParseError ):
81
+ parser .parse (self .stream , None , self .parser_context )
82
+
69
83
def test_parse_missing_filename_multiple_upload_handlers (self ):
70
84
"""
71
85
Parse raw file upload with multiple handlers when filename is missing.
0 commit comments