Mercurial > p > roundup > code
diff test/rest_common.py @ 5937:5d0873a4de4a
fix rate limit headers - were ints/floats need to be strings
Running under gunicorn rest requests were crashing. Not all of the
values for the rate limit headers were strings. Some were
numbers. This caused the header generation for wsgi to fail. Now the
values are all strings.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 20 Oct 2019 20:56:56 -0400 |
| parents | 94a7669677ae |
| children | 25a813415d59 |
line wrap: on
line diff
--- a/test/rest_common.py Sat Oct 19 20:19:43 2019 -0400 +++ b/test/rest_common.py Sun Oct 20 20:56:56 2019 -0400 @@ -1001,7 +1001,7 @@ # remaining count is correct self.assertEqual( self.server.client.additional_headers["X-RateLimit-Remaining"], - self.db.config['WEB_API_CALLS_PER_INTERVAL'] -1 - i + str(self.db.config['WEB_API_CALLS_PER_INTERVAL'] -1 - i) ) # trip limit @@ -1014,20 +1014,20 @@ self.assertEqual( self.server.client.additional_headers["X-RateLimit-Limit"], - self.db.config['WEB_API_CALLS_PER_INTERVAL']) + str(self.db.config['WEB_API_CALLS_PER_INTERVAL'])) self.assertEqual( self.server.client.additional_headers["X-RateLimit-Limit-Period"], - self.db.config['WEB_API_INTERVAL_IN_SEC']) + str(self.db.config['WEB_API_INTERVAL_IN_SEC'])) self.assertEqual( self.server.client.additional_headers["X-RateLimit-Remaining"], - 0) + '0') # value will be almost 60. Allow 1-2 seconds for all 20 rounds. self.assertAlmostEqual( - self.server.client.additional_headers["X-RateLimit-Reset"], + float(self.server.client.additional_headers["X-RateLimit-Reset"]), 59, delta=1) self.assertEqual( str(self.server.client.additional_headers["Retry-After"]), - "3.0") # check as string + "3") # check as string print("Reset:", self.server.client.additional_headers["X-RateLimit-Reset"]) print("Now realtime pre-sleep:", datetime.utcnow()) @@ -1049,18 +1049,18 @@ self.assertEqual( self.server.client.additional_headers["X-RateLimit-Limit"], - self.db.config['WEB_API_CALLS_PER_INTERVAL']) + str(self.db.config['WEB_API_CALLS_PER_INTERVAL'])) self.assertEqual( self.server.client.additional_headers["X-RateLimit-Limit-Period"], - self.db.config['WEB_API_INTERVAL_IN_SEC']) + str(self.db.config['WEB_API_INTERVAL_IN_SEC'])) self.assertEqual( self.server.client.additional_headers["X-RateLimit-Remaining"], - 0) + '0') self.assertFalse("Retry-After" in self.server.client.additional_headers) # we still need to wait a minute for everything to clear self.assertAlmostEqual( - self.server.client.additional_headers["X-RateLimit-Reset"], + float(self.server.client.additional_headers["X-RateLimit-Reset"]), 59, delta=1) # and make sure we need to wait another three seconds @@ -1072,7 +1072,7 @@ self.assertEqual(self.server.client.response_code, 429) self.assertEqual( str(self.server.client.additional_headers["Retry-After"]), - "3.0") # check as string + "3") # check as string json_dict = json.loads(b2s(results)) self.assertEqual(json_dict['error']['msg'],
