55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
import unittest
|
|
from unittest.mock import patch, MagicMock
|
|
|
|
from helix.db.redis_manager import RedisManager
|
|
|
|
|
|
class RedisManagerTest(unittest.TestCase):
|
|
def test_parses_vcap_environment_variable(self):
|
|
valid_vcap_string = """
|
|
{
|
|
"rediscloud": [
|
|
{
|
|
"credentials": {
|
|
"hostname": "fakehost",
|
|
"password": "fakepassword",
|
|
"port": "1234"
|
|
},
|
|
"syslog_drain_url": null,
|
|
"label": "rediscloud",
|
|
"provider": null,
|
|
"plan": "30mb",
|
|
"name": "helix-staging-redis",
|
|
"tags": [
|
|
"Data Stores",
|
|
"Data Store",
|
|
"Caching",
|
|
"Messaging and Queuing",
|
|
"key-value",
|
|
"caching",
|
|
"redis"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
"""
|
|
mock_redis = MagicMock()
|
|
|
|
with patch('redis.Redis', mock_redis):
|
|
RedisManager.get_redis_connection(valid_vcap_string, 'redis://example.org')
|
|
mock_redis.assert_called_with(host='fakehost', password='fakepassword', port=1234)
|
|
|
|
def test_uses_url_if_vcap_environment_is_not_set(self):
|
|
mock_redis = MagicMock()
|
|
|
|
with patch('redis.Redis', mock_redis):
|
|
RedisManager.get_redis_connection(None, 'redis://example.org')
|
|
mock_redis.from_url.assert_called_with('redis://example.org')
|
|
|
|
def test_defaults_to_local_connection_if_vcap_environment_is_not_set_and_url_is_none(self):
|
|
mock_redis = MagicMock()
|
|
|
|
with patch('redis.Redis', mock_redis):
|
|
RedisManager.get_redis_connection(None, None)
|
|
mock_redis.assert_called_with(host='localhost', port=6379, db=0)
|