Skip to content

Commit a410f8f

Browse files
committed
Ensure SparkRateLimitError.retry_after is a non-negative int
Fix bug number 2 associated with issue #52 : Ensure that the SparkRateLimitError.retry_after attribute is always a non-negative int, and then (in the automated rate-limit handling code in restsession.py) don't test for the validitiy of the retry_after attribute - make sure it is good and then use it.
1 parent c3095ed commit a410f8f

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

ciscosparkapi/exceptions.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,10 @@ def __init__(self, response):
145145
super(SparkRateLimitError, self).__init__(response)
146146

147147
# Extended exception data attributes
148-
self.retry_after = int(response.headers.get('Retry-After', 200))
148+
self.retry_after = abs(int(response.headers.get('Retry-After', 15)))
149149
"""The `Retry-After` time period (in seconds) provided by Cisco Spark.
150150
151-
Defaults to 200 seconds if the response `Retry-After` header isn't
151+
Defaults to 15 seconds if the response `Retry-After` header isn't
152152
present in the response headers.
153153
154154
"""
@@ -159,10 +159,10 @@ class SparkRateLimitWarning(UserWarning):
159159

160160
def __init__(self, response):
161161
super(SparkRateLimitWarning, self).__init__()
162-
self.retry_after = int(response.headers.get('Retry-After', 200))
162+
self.retry_after = abs(int(response.headers.get('Retry-After', 15)))
163163
"""The `Retry-After` time period (in seconds) provided by Cisco Spark.
164164
165-
Defaults to 200 seconds if the response `Retry-After` header isn't
165+
Defaults to 15 seconds if the response `Retry-After` header isn't
166166
present in the response headers.
167167
168168
"""

ciscosparkapi/restsession.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ def request(self, method, url, erc, **kwargs):
277277
except SparkRateLimitError as e:
278278
# Catch rate-limit errors
279279
# Wait and retry if automatic rate-limit handling is enabled
280-
if self.wait_on_rate_limit and e.retry_after:
280+
if self.wait_on_rate_limit:
281281
warnings.warn(SparkRateLimitWarning(response))
282282
time.sleep(e.retry_after)
283283
continue

0 commit comments

Comments
 (0)