Refactor to move logic from SQL functions to Python
- Moved the logic the retrieve the redis connection params to RedisDBConfig class - Moved the logic that retrieve the services configuration to ServicesDBConfig
This commit is contained in:
@@ -10,12 +10,12 @@ class TestConfig(TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.redis_conn = MockRedis()
|
||||
self.plpy_mock = test_helper.build_plpy_mock()
|
||||
|
||||
def test_should_return_list_of_nokia_geocoder_config_if_its_ok(self):
|
||||
test_helper.build_redis_user_config(self.redis_conn, 'test_user')
|
||||
geocoder_config = GeocoderConfig(self.redis_conn,
|
||||
'test_user', None,
|
||||
'nokia_id', 'nokia_cod')
|
||||
geocoder_config = GeocoderConfig(self.redis_conn, self.plpy_mock,
|
||||
'test_user', None)
|
||||
assert geocoder_config.heremaps_geocoder is True
|
||||
assert geocoder_config.geocoding_quota == 100
|
||||
assert geocoder_config.soft_geocoding_limit is False
|
||||
@@ -25,17 +25,17 @@ class TestConfig(TestCase):
|
||||
test_helper.build_redis_user_config(self.redis_conn, 'test_user')
|
||||
test_helper.build_redis_org_config(self.redis_conn, 'test_org',
|
||||
quota=200, end_date=yesterday)
|
||||
geocoder_config = GeocoderConfig(self.redis_conn,
|
||||
'test_user', 'test_org',
|
||||
'nokia_id', 'nokia_cod')
|
||||
geocoder_config = GeocoderConfig(self.redis_conn, self.plpy_mock,
|
||||
'test_user', 'test_org')
|
||||
assert geocoder_config.heremaps_geocoder is True
|
||||
assert geocoder_config.geocoding_quota == 200
|
||||
assert geocoder_config.soft_geocoding_limit is False
|
||||
assert geocoder_config.period_end_date.date() == yesterday.date()
|
||||
|
||||
def test_should_raise_configuration_exception_when_missing_nokia_geocoder_parameters(self):
|
||||
def test_should_raise_exception_when_missing_parameters(self):
|
||||
plpy_mock = test_helper.build_plpy_mock(empty=True)
|
||||
test_helper.build_redis_user_config(self.redis_conn, 'test_user')
|
||||
assert_raises(ConfigException,
|
||||
GeocoderConfig,
|
||||
self.redis_conn, 'test_user',
|
||||
None, None, None)
|
||||
self.redis_conn, plpy_mock, 'test_user',
|
||||
None)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
from datetime import datetime, date
|
||||
from mock import Mock
|
||||
|
||||
|
||||
def build_redis_user_config(redis_conn, username, quota=100, soft_limit=False,
|
||||
@@ -31,3 +32,18 @@ def increment_geocoder_uses(redis_conn, username, orgname=None,
|
||||
redis_name = "{0}:{1}:{2}:{3}:{4}".format(prefix, entity_name,
|
||||
service, metric, yearmonth)
|
||||
redis_conn.zincrby(redis_name, date.day, amount)
|
||||
|
||||
|
||||
def build_plpy_mock(empty=False):
|
||||
plpy_mock = Mock()
|
||||
if not empty:
|
||||
plpy_mock.execute.side_effect = _plpy_execute_side_effect
|
||||
|
||||
return plpy_mock
|
||||
|
||||
|
||||
def _plpy_execute_side_effect(*args, **kwargs):
|
||||
if args[0] == 'SELECT cartodb.CDB_Conf_GetConf(heremaps_conf) as conf':
|
||||
return [{'conf': '{"app_id": "app_id", "app_code": "code"}'}]
|
||||
elif args[0] == 'SELECT cartodb.CDB_Conf_GetConf(mapzen_conf) as conf':
|
||||
return [{'conf': '{"routing_app_key": "app_key"}'}]
|
||||
|
||||
@@ -88,9 +88,9 @@ class TestQuotaService(TestCase):
|
||||
if orgname:
|
||||
test_helper.build_redis_org_config(self.redis_conn, orgname,
|
||||
quota=quota, end_date=end_date)
|
||||
geocoder_config = GeocoderConfig(self.redis_conn,
|
||||
username, orgname,
|
||||
'nokia_id', 'nokia_cod')
|
||||
plpy_mock = test_helper.build_plpy_mock()
|
||||
geocoder_config = GeocoderConfig(self.redis_conn, plpy_mock,
|
||||
username, orgname)
|
||||
return QuotaService(geocoder_config,
|
||||
redis_connection = self.redis_conn)
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ from cartodb_services.metrics import UserMetricsService
|
||||
from cartodb_services.metrics import GeocoderConfig
|
||||
from datetime import datetime, date
|
||||
from unittest import TestCase
|
||||
from mock import Mock
|
||||
from nose.tools import assert_raises
|
||||
from datetime import timedelta
|
||||
|
||||
@@ -84,7 +85,7 @@ class TestUserService(TestCase):
|
||||
if orgname:
|
||||
test_helper.build_redis_org_config(self.redis_conn, orgname,
|
||||
quota=quota, end_date=end_date)
|
||||
geocoder_config = GeocoderConfig(self.redis_conn,
|
||||
username, orgname,
|
||||
'nokia_id', 'nokia_cod')
|
||||
plpy_mock = test_helper.build_plpy_mock()
|
||||
geocoder_config = GeocoderConfig(self.redis_conn, plpy_mock,
|
||||
username, orgname,)
|
||||
return UserMetricsService(geocoder_config, self.redis_conn)
|
||||
|
||||
Reference in New Issue
Block a user