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'],

Roundup Issue Tracker: http://roundup-tracker.org/