Fixed QPS retry decorator
This commit is contained in:
@@ -6,7 +6,7 @@ import requests_mock
|
||||
from mock import Mock
|
||||
|
||||
from cartodb_services.mapzen import MapzenGeocoder
|
||||
from cartodb_services.mapzen.exceptions import MalformedResult
|
||||
from cartodb_services.mapzen.exceptions import MalformedResult, TimeoutException
|
||||
|
||||
requests_mock.Mocker.TEST_PREFIX = 'test_'
|
||||
|
||||
|
||||
33
server/lib/python/cartodb_services/test/test_qps.py
Normal file
33
server/lib/python/cartodb_services/test/test_qps.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import test_helper
|
||||
import requests
|
||||
from unittest import TestCase
|
||||
from nose.tools import assert_raises
|
||||
from datetime import datetime, date
|
||||
from cartodb_services.mapzen.qps import qps_retry
|
||||
from cartodb_services.mapzen.exceptions import ServiceException, TimeoutException
|
||||
import requests_mock
|
||||
import mock
|
||||
|
||||
requests_mock.Mocker.TEST_PREFIX = 'test_'
|
||||
|
||||
@requests_mock.Mocker()
|
||||
class TestQPS(TestCase):
|
||||
QPS_ERROR_MESSAGE = "Queries per second exceeded: Queries exceeded (10 allowed)"
|
||||
|
||||
def test_qps_timeout(self, req_mock):
|
||||
class TestClass:
|
||||
@qps_retry(timeout=1)
|
||||
def test(self):
|
||||
response = requests.get('http://localhost/test_qps')
|
||||
if response.status_code == 429:
|
||||
raise ServiceException('Error 429', response)
|
||||
|
||||
def _text_cb(request, context):
|
||||
context.status_code = 429
|
||||
return self.QPS_ERROR_MESSAGE
|
||||
|
||||
req_mock.register_uri('GET', 'http://localhost/test_qps',
|
||||
text=_text_cb)
|
||||
with self.assertRaises(TimeoutException):
|
||||
c = TestClass()
|
||||
c.test()
|
||||
Reference in New Issue
Block a user