""" بدنه‌ی درخواستِ بزرگ ۵۰۰ و ERRORِ لاگ نمی‌دهد (config/exceptions.py). روی سرورِ زنده، JSONِ ۳ مگابایتی به /api/auth/login ۵۰۰ داده بود؛ ۲۰۰ کیلوبایت درست ۴۰۰ می‌داد. """ import json from django.core.cache import cache from django.test import TestCase, override_settings from rest_framework.test import APIClient @override_settings(DATA_UPLOAD_MAX_MEMORY_SIZE=2_621_440) class OversizedBodyTests(TestCase): def setUp(self): cache.clear() def _post(self, path, size): body = json.dumps({'phone': '09120000000', 'otp': '1' * size}) return APIClient().post(path, data=body, content_type='application/json') def test_a_body_over_the_limit_is_413_with_a_persian_message(self): for path in ('/api/auth/login', '/api/auth/otp/request'): with self.assertNoLogs('config.exceptions', 'ERROR'): response = self._post(path, 3_000_000) self.assertEqual(response.status_code, 413, path) self.assertIn('حجم', response.json()['detail']) def test_a_large_but_allowed_body_still_gets_the_normal_validation_error(self): response = self._post('/api/auth/login', 200_000) self.assertEqual(response.status_code, 400) self.assertIn('otp', response.json())