51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
|
from unittest import TestCase
|
||
|
from mockredis import MockRedis
|
||
|
from cartodb_services.metrics import RoutingConfig
|
||
|
from ..test_helper import build_plpy_mock
|
||
|
|
||
|
class TestRoutingConfig(TestCase):
|
||
|
|
||
|
def setUp(self):
|
||
|
self._redis_conn = MockRedis()
|
||
|
self._db_conn = build_plpy_mock()
|
||
|
self._username = 'my_test_user'
|
||
|
self._user_key = "rails:users:{0}".format(self._username)
|
||
|
self._redis_conn.hset(self._user_key, 'period_end_date', '2016-10-10')
|
||
|
|
||
|
def test_should_pick_quota_from_server_by_default(self):
|
||
|
orgname = None
|
||
|
config = RoutingConfig(self._redis_conn, self._db_conn, self._username, orgname)
|
||
|
assert config.monthly_quota == 1500000
|
||
|
|
||
|
def test_should_pick_quota_from_redis_if_present(self):
|
||
|
self._redis_conn.hset(self._user_key, 'mapzen_routing_quota', 1000)
|
||
|
orgname = None
|
||
|
config = RoutingConfig(self._redis_conn, self._db_conn, self._username, orgname)
|
||
|
assert config.monthly_quota == 1000
|
||
|
|
||
|
def test_org_quota_overrides_user_quota(self):
|
||
|
self._redis_conn.hset(self._user_key, 'mapzen_routing_quota', 1000)
|
||
|
orgname = 'my_test_org'
|
||
|
orgname_key = "rails:orgs:{0}".format(orgname)
|
||
|
self._redis_conn.hset(orgname_key, 'period_end_date', '2016-05-31')
|
||
|
self._redis_conn.hset(orgname_key, 'mapzen_routing_quota', 5000)
|
||
|
|
||
|
# TODO: these are not too relevant for the routing config
|
||
|
self._redis_conn.hset(orgname_key, 'geocoding_quota', 0)
|
||
|
self._redis_conn.hset(orgname_key, 'here_isolines_quota', 0)
|
||
|
|
||
|
config = RoutingConfig(self._redis_conn, self._db_conn, self._username, orgname)
|
||
|
assert config.monthly_quota == 5000
|
||
|
|
||
|
|
||
|
def test_should_have_soft_limit_false_by_default(self):
|
||
|
orgname = None
|
||
|
config = RoutingConfig(self._redis_conn, self._db_conn, self._username, orgname)
|
||
|
assert config.soft_limit == False
|
||
|
|
||
|
def test_can_set_soft_limit_in_user_conf(self):
|
||
|
self._redis_conn.hset(self._user_key, 'soft_mapzen_routing_limit', True)
|
||
|
orgname = None
|
||
|
config = RoutingConfig(self._redis_conn, self._db_conn, self._username, orgname)
|
||
|
assert config.soft_limit == True
|