def test_hit_ratelimits(self): email = "*****@*****.**" user = get_user_profile_by_email(email) clear_user_history(user) api_key = self.get_api_key(email) for i in range(6): result = self.send_api_message(email, api_key, "some stuff %s" % (i, )) self.assertEqual(result.status_code, 429) json = ujson.loads(result.content) self.assertEqual(json.get("result"), "error") self.assertIn("API usage exceeded rate limit, try again in", json.get("msg")) self.assertTrue('Retry-After' in result) self.assertIn(result['Retry-After'], json.get("msg")) # We actually wait a second here, rather than force-clearing our history, # to make sure the rate-limiting code automatically forgives a user # after some time has passed. time.sleep(1) result = self.send_api_message(email, api_key, "Good message") self.assert_json_success(result)
def test_hit_ratelimits(self): # type: () -> None email = "*****@*****.**" user = get_user_profile_by_email(email) clear_user_history(user) api_key = self.get_api_key(email) for i in range(6): result = self.send_api_message(email, api_key, "some stuff %s" % (i,)) self.assertEqual(result.status_code, 429) json = ujson.loads(result.content) self.assertEqual(json.get("result"), "error") self.assertIn("API usage exceeded rate limit, try again in", json.get("msg")) self.assertTrue('Retry-After' in result) self.assertIn(result['Retry-After'], json.get("msg")) # We actually wait a second here, rather than force-clearing our history, # to make sure the rate-limiting code automatically forgives a user # after some time has passed. time.sleep(1) result = self.send_api_message(email, api_key, "Good message") self.assert_json_success(result)
def test_headers(self): email = "*****@*****.**" user = get_user_profile_by_email(email) clear_user_history(user) api_key = self.get_api_key(email) result = self.send_api_message(email, api_key, "some stuff") self.assertTrue("X-RateLimit-Remaining" in result) self.assertTrue("X-RateLimit-Limit" in result) self.assertTrue("X-RateLimit-Reset" in result)
def test_headers(self): email = "*****@*****.**" user = get_user_profile_by_email(email) clear_user_history(user) api_key = self.get_api_key(email) result = self.send_api_message(email, api_key, "some stuff") self.assertTrue('X-RateLimit-Remaining' in result) self.assertTrue('X-RateLimit-Limit' in result) self.assertTrue('X-RateLimit-Reset' in result)
def test_ratelimit_decrease(self): email = "*****@*****.**" user = get_user_profile_by_email(email) clear_user_history(user) api_key = self.get_api_key(email) result = self.send_api_message(email, api_key, "some stuff") limit = int(result["X-RateLimit-Remaining"]) result = self.send_api_message(email, api_key, "some stuff 2") newlimit = int(result["X-RateLimit-Remaining"]) self.assertEqual(limit, newlimit + 1)
def test_ratelimit_decrease(self): email = "*****@*****.**" user = get_user_profile_by_email(email) clear_user_history(user) api_key = self.get_api_key(email) result = self.send_api_message(email, api_key, "some stuff") limit = int(result['X-RateLimit-Remaining']) result = self.send_api_message(email, api_key, "some stuff 2") newlimit = int(result['X-RateLimit-Remaining']) self.assertEqual(limit, newlimit + 1)