danswer/backend/tests/unit/onyx/test_redis.py
2024-12-13 09:56:10 -08:00

40 lines
1.1 KiB
Python

import os
import pytest
import redis
from onyx.redis.redis_pool import RedisPool
from onyx.utils.logger import setup_logger
logger = setup_logger()
@pytest.mark.skipif(
os.getenv("REDIS_CLOUD_PYTEST_PASSWORD") is None,
reason="Environment variable REDIS_CLOUD_PYTEST_PASSWORD is not set",
)
def test_redis_ssl() -> None:
REDIS_PASSWORD = os.environ.get("REDIS_CLOUD_PYTEST_PASSWORD")
REDIS_HOST = "redis-15414.c267.us-east-1-4.ec2.redns.redis-cloud.com"
REDIS_PORT = 15414
REDIS_SSL_CERT_REQS = "required"
assert REDIS_PASSWORD
# Construct the path to the CA certificate for the redis ssl test instance
# it contains no secret data, so it's OK to have checked in!
current_dir = os.path.dirname(__file__)
REDIS_SSL_CA_CERTS = os.path.join(current_dir, "redis_ca.pem")
pool = RedisPool.create_pool(
host=REDIS_HOST,
port=REDIS_PORT,
password=REDIS_PASSWORD,
ssl=True,
ssl_cert_reqs=REDIS_SSL_CERT_REQS,
ssl_ca_certs=REDIS_SSL_CA_CERTS,
)
r = redis.Redis(connection_pool=pool)
assert r.ping()