@@ -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