Skip to content

Commit dcf54f7

Browse files
author
Sam Gammon
committed
Adding support for accepting 304-responses for queries
1 parent c32c98f commit dcf54f7

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

keen/api.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ def query(self, analysis_type, params, retries=None, strict=False):
213213
"Authorization": self.read_key
214214
},
215215
'retries': retries or self.default_retries, # retry count
216-
'expected': 200, # expected return code
216+
'expected': (200, 304), # expected return code
217217
'return_key': 'result', # result location in response
218218
'default_value': {}, # default value if no `return_key`
219219
'_strict': strict # whether to raise exceptions immediately
@@ -224,6 +224,10 @@ def fulfill(self, method, url, retries=None, expected=200, return_key=None, defa
224224

225225
''' Fulfill an HTTP request to Keen's API. '''
226226

227+
# allow multiple success codes
228+
if not isinstance(expected, tuple):
229+
expected = (expected,)
230+
227231
for attempt in self.range(1, (retries or 1) + 1):
228232

229233
# defaults
@@ -240,7 +244,7 @@ def fulfill(self, method, url, retries=None, expected=200, return_key=None, defa
240244

241245
else:
242246
# check for unexpected responses
243-
if expected and result.status_code != expected:
247+
if expected and result.status_code not in expected:
244248
raise exceptions.KeenApiError(response) # raise immediately, it worked and failed
245249

246250
break # things worked, stop trying

0 commit comments

Comments
 (0)