12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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)
|