Wrap test in try/finally, cleanup duration determination

This commit is contained in:
Christopher Grebs 2019-07-30 09:40:32 +02:00
parent 72fbefd853
commit 957b39fa8d
No known key found for this signature in database
GPG Key ID: D7BCDE311BFC58DD
2 changed files with 11 additions and 12 deletions

View File

@ -363,10 +363,8 @@ class APIView(View):
if duration is not None
]
if durations:
self.throttled(request, max(durations))
else:
self.throttled(request, None)
duration = max(durations) if durations else None
self.throttled(request, duration)
def determine_version(self, request, *args, **kwargs):
"""

View File

@ -168,16 +168,17 @@ class ThrottlingTests(TestCase):
assert int(response['retry-after']) == 60
previous_rate = User3SecRateThrottle.rate
User3SecRateThrottle.rate = '1/sec'
try:
User3SecRateThrottle.rate = '1/sec'
for dummy in range(24):
response = MockView_DoubleThrottling.as_view()(request)
for dummy in range(24):
response = MockView_DoubleThrottling.as_view()(request)
assert response.status_code == 429
assert int(response['retry-after']) == 60
# reset
User3SecRateThrottle.rate = previous_rate
assert response.status_code == 429
assert int(response['retry-after']) == 60
finally:
# reset
User3SecRateThrottle.rate = previous_rate
def ensure_response_header_contains_proper_throttle_field(self, view, expected_headers):
"""