from django.core.handlers.wsgi import WSGIHandler from django.test import SimpleTestCase, override_settings from django.test.client import FakePayload 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)