Modern QA2026Redis with Testcontainers — tiles
Log inJoin
55 / 75 · 08 Infrastructure as Code Testing · Testcontainers for Infrastructure Testing← prev⊞ allnext →☰ Read as one page

10.5Redis with Testcontainers

# tests/integration/test_cache.py
import pytest
from testcontainers.redis import RedisContainer
import redis

@pytest.fixture(scope="module")
def redis_container():
    with RedisContainer("redis:7-alpine") as r:
        yield r

@pytest.fixture
def redis_client(redis_container):
    client = redis.Redis(
        host=redis_container.get_container_host_ip(),
        port=redis_container.get_exposed_port(6379),
        decode_responses=True,
    )
    client.flushall()  # Clean state for each test
    yield client

def test_cache_set_and_get(redis_client):
    redis_client.set("user:123", '{"name": "Alice"}', ex=300)
    result = redis_client.get("user:123")
    assert result == '{"name": "Alice"}'

def test_cache_expiration(redis_client):
    redis_client.set("temp-key", "value", ex=1)
    assert redis_client.get("temp-key") == "value"

    import time
    time.sleep(2)
    assert redis_client.get("temp-key") is None