cleanup: trim bloated multi-line comments across the project
This commit is contained in:
@@ -837,27 +837,13 @@ class GuestSessionThrottleTests(TestCase):
|
||||
}
|
||||
)
|
||||
def test_repeated_guest_session_requests_are_eventually_throttled(self):
|
||||
# ⚠️ اصلاح (باگِ خودِ تست، نه اپلیکیشن): این تست دو مشکلِ جدا
|
||||
# داشت:
|
||||
# ۱) `type` رو نمیفرستاد (پایینتر فیکس شده) — قراردادِ واقعیِ
|
||||
# API طبقِ README نیازش داره، پس هر درخواست قبل از throttle
|
||||
# با 400 رد میشد.
|
||||
# ۲) override_settings(REST_FRAMEWORK=...) بهتنهایی رفتارِ
|
||||
# ScopedRateThrottle رو تغییر نمیده: DRF مقدارِ
|
||||
# THROTTLE_RATES رو یکبار موقعِ import ماژولِ throttling
|
||||
# بهعنوانِ یک class attribute از api_settings.
|
||||
# DEFAULT_THROTTLE_RATES میگیره (همون دیکشنریِ اصلیِ
|
||||
# settings.py، با reference). override_settings یک دیکشنریِ
|
||||
# *جدید* برای settings.REST_FRAMEWORK میسازه، اما این
|
||||
# class attribute هنوز به همون دیکشنریِ قدیمی اشاره میکنه —
|
||||
# سیگنالِ setting_changed فقط api_settings رو reload میکنه،
|
||||
# نه این class attribute رو. نتیجه: نرخِ واقعیِ اعمالشده
|
||||
# همیشه همون دیفالتِ 20/hour در settings.py میموند، نه
|
||||
# 3/hour، پس ۵ درخواست هیچوقت به سقف نمیرسیدن. برای اینکه
|
||||
# این تست واقعاً نرخِ محدودشده رو بسنجه، مستقیماً همون
|
||||
# دیکشنریِ زندهی ScopedRateThrottle.THROTTLE_RATES رو
|
||||
# patch.dict میکنیم (که override_settings بالا هم برای
|
||||
# سازگاری/مستندسازیِ نیت نگه داشته میشه).
|
||||
# override_settings(REST_FRAMEWORK=...) بهتنهایی رفتارِ
|
||||
# ScopedRateThrottle رو تغییر نمیده: DRF مقدارِ THROTTLE_RATES رو
|
||||
# یکبار موقعِ import، بهعنوانِ class attribute، از دیکشنریِ اصلیِ
|
||||
# settings.py میگیره؛ override_settings دیکشنریِ settings رو عوض
|
||||
# میکنه ولی این class attribute هنوز به نسخهی قدیمی اشاره میکنه.
|
||||
# برای سنجیدنِ نرخِ واقعی، مستقیماً patch.dict روی همون دیکشنریِ
|
||||
# زندهی ScopedRateThrottle.THROTTLE_RATES لازمه.
|
||||
with patch.dict(ScopedRateThrottle.THROTTLE_RATES, {'guest_session': '3/hour'}):
|
||||
for i in range(3):
|
||||
response = self.client.post(
|
||||
|
||||
Reference in New Issue
Block a user