mirror of https://github.com/django/django.git
56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
from django.core.handlers.wsgi import WSGIHandler
|
|
from django.test import SimpleTestCase, override_settings
|
|
from django.test.client import (
|
|
BOUNDARY,
|
|
MULTIPART_CONTENT,
|
|
FakePayload,
|
|
encode_multipart,
|
|
)
|
|
|
|
|
|
class ExceptionHandlerTests(SimpleTestCase):
|
|
def get_suspicious_environ(self):
|
|
payload = FakePayload("a=1&a=2&a=3\r\n")
|
|
return {
|
|
"REQUEST_METHOD": "POST",
|
|
"CONTENT_TYPE": "application/x-www-form-urlencoded",
|
|
"CONTENT_LENGTH": len(payload),
|
|
"wsgi.input": payload,
|
|
"SERVER_NAME": "test",
|
|
"SERVER_PORT": "8000",
|
|
}
|
|
|
|
@override_settings(DATA_UPLOAD_MAX_MEMORY_SIZE=12)
|
|
def test_data_upload_max_memory_size_exceeded(self):
|
|
response = WSGIHandler()(self.get_suspicious_environ(), lambda *a, **k: None)
|
|
self.assertEqual(response.status_code, 400)
|
|
|
|
@override_settings(DATA_UPLOAD_MAX_NUMBER_FIELDS=2)
|
|
def test_data_upload_max_number_fields_exceeded(self):
|
|
response = WSGIHandler()(self.get_suspicious_environ(), lambda *a, **k: None)
|
|
self.assertEqual(response.status_code, 400)
|
|
|
|
@override_settings(DATA_UPLOAD_MAX_NUMBER_FILES=2)
|
|
def test_data_upload_max_number_files_exceeded(self):
|
|
payload = FakePayload(
|
|
encode_multipart(
|
|
BOUNDARY,
|
|
{
|
|
"a.txt": "Hello World!",
|
|
"b.txt": "Hello Django!",
|
|
"c.txt": "Hello Python!",
|
|
},
|
|
)
|
|
)
|
|
environ = {
|
|
"REQUEST_METHOD": "POST",
|
|
"CONTENT_TYPE": MULTIPART_CONTENT,
|
|
"CONTENT_LENGTH": len(payload),
|
|
"wsgi.input": payload,
|
|
"SERVER_NAME": "test",
|
|
"SERVER_PORT": "8000",
|
|
}
|
|
|
|
response = WSGIHandler()(environ, lambda *a, **k: None)
|
|
self.assertEqual(response.status_code, 400)
|