Add tests for redis connection configs
This commit is contained in:
@@ -0,0 +1,101 @@
|
|||||||
|
from unittest import TestCase
|
||||||
|
from cartodb_services.refactor.storage.redis_config import *
|
||||||
|
from cartodb_services.refactor.storage.server_config import InMemoryConfigStorage
|
||||||
|
from cartodb_services.refactor.config.exceptions import ConfigException
|
||||||
|
|
||||||
|
class TestRedisConnectionConfig(TestCase):
|
||||||
|
|
||||||
|
def test_config_holds_values(self):
|
||||||
|
# this is mostly for completeness, dummy class, dummy test
|
||||||
|
config = RedisConnectionConfig('myhost.com', 6379, 0.1, 5, None)
|
||||||
|
assert config.host == 'myhost.com'
|
||||||
|
assert config.port == 6379
|
||||||
|
assert config.timeout == 0.1
|
||||||
|
assert config.db == 5
|
||||||
|
assert config.sentinel_id is None
|
||||||
|
|
||||||
|
|
||||||
|
class TestRedisConnectionConfigBuilder(TestCase):
|
||||||
|
|
||||||
|
def test_it_raises_exception_as_it_is_abstract(self):
|
||||||
|
server_config_storage = InMemoryConfigStorage()
|
||||||
|
self.assertRaises(TypeError, RedisConnectionConfigBuilder, server_config_storage, 'whatever_key')
|
||||||
|
|
||||||
|
|
||||||
|
class TestRedisMetadataConnectionConfigBuilder(TestCase):
|
||||||
|
|
||||||
|
def test_it_raises_exception_if_config_is_missing(self):
|
||||||
|
server_config_storage = InMemoryConfigStorage()
|
||||||
|
config_builder = RedisMetadataConnectionConfigBuilder(server_config_storage)
|
||||||
|
self.assertRaises(ConfigException, config_builder.get)
|
||||||
|
|
||||||
|
def test_it_gets_a_valid_config_from_the_server_storage(self):
|
||||||
|
server_config_storage = InMemoryConfigStorage({
|
||||||
|
'redis_metadata_config': {
|
||||||
|
'redis_host': 'myhost.com',
|
||||||
|
'redis_port': 6379,
|
||||||
|
'timeout': 0.2,
|
||||||
|
'redis_db': 3,
|
||||||
|
'sentinel_master_id': None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
config = RedisMetadataConnectionConfigBuilder(server_config_storage).get()
|
||||||
|
assert config.host == 'myhost.com'
|
||||||
|
assert config.port == 6379
|
||||||
|
assert config.timeout == 0.2
|
||||||
|
assert config.db == 3
|
||||||
|
assert config.sentinel_id is None
|
||||||
|
|
||||||
|
def test_it_gets_a_default_timeout_if_none(self):
|
||||||
|
server_config_storage = InMemoryConfigStorage({
|
||||||
|
'redis_metadata_config': {
|
||||||
|
'redis_host': 'myhost.com',
|
||||||
|
'redis_port': 6379,
|
||||||
|
'timeout': None,
|
||||||
|
'redis_db': 3,
|
||||||
|
'sentinel_master_id': None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
config = RedisMetadataConnectionConfigBuilder(server_config_storage).get()
|
||||||
|
assert config.host == 'myhost.com'
|
||||||
|
assert config.port == 6379
|
||||||
|
assert config.timeout == RedisConnectionConfigBuilder.DEFAULT_TIMEOUT
|
||||||
|
assert config.db == 3
|
||||||
|
assert config.sentinel_id is None
|
||||||
|
|
||||||
|
def test_it_gets_a_default_db_if_none(self):
|
||||||
|
server_config_storage = InMemoryConfigStorage({
|
||||||
|
'redis_metadata_config': {
|
||||||
|
'redis_host': 'myhost.com',
|
||||||
|
'redis_port': 6379,
|
||||||
|
'timeout': 0.2,
|
||||||
|
'redis_db': None,
|
||||||
|
'sentinel_master_id': None
|
||||||
|
}
|
||||||
|
})
|
||||||
|
config = RedisMetadataConnectionConfigBuilder(server_config_storage).get()
|
||||||
|
assert config.host == 'myhost.com'
|
||||||
|
assert config.port == 6379
|
||||||
|
assert config.timeout == 0.2
|
||||||
|
assert config.db == RedisConnectionConfigBuilder.DEFAULT_USER_DB
|
||||||
|
assert config.sentinel_id is None
|
||||||
|
|
||||||
|
|
||||||
|
class TestRedisMetricsConnectionConfigBuilder(TestCase):
|
||||||
|
|
||||||
|
def test_it_gets_a_valid_config_from_the_server_storage(self):
|
||||||
|
server_config_storage = InMemoryConfigStorage({
|
||||||
|
'redis_metrics_config': {
|
||||||
|
'redis_host': 'myhost.com',
|
||||||
|
'redis_port': 6379,
|
||||||
|
'timeout': 0.2,
|
||||||
|
'redis_db': 3,
|
||||||
|
'sentinel_master_id': 'some_master_id'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
config = RedisMetricsConnectionConfigBuilder(server_config_storage).get()
|
||||||
|
assert config.host == 'myhost.com'
|
||||||
|
assert config.port == 6379
|
||||||
|
assert config.timeout == 0.2
|
||||||
|
assert config.db == 3
|
||||||
|
assert config.sentinel_id == 'some_master_id'
|
||||||
Reference in New Issue
Block a user