es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo escribir casos de prueba unitarias en Python para simular la conexión a Redis (redis.StrictRedis) en Django.

¿Cómo puedo simular la siguiente función para conectarse a Redis?

import redis

class RedisCache:
redis_instance = None

@classmethod
def set_connect(cls):
    redis_instance = redis.StrictRedis(host='0.0.0.0', port=6379, password='xyz', charset='utf-8', decode_responses=True, socket_timeout=30)
    return redis_instance

@classmethod
def get_conn(cls):
    cls.redis_instance = cls.set_connect()
    return cls.redis_instance

Busqué algunas soluciones, pero básicamente usaban el módulo fakeredis. Quería tener una manera más simple de simular estas funciones.

Nota-
datos devueltos por la función: Redis<ConnectionPool<Connection<host=127.0.0.1,port=6379,db=0>>>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puedes utilizar el módulo unittest.mock para simular la clase RedisCache. Puedes crear un objeto de simulación de la clase RedisCache y establecer el atributo redis_instance con los datos que deseas devolver.

    Por ejemplo:

    import unittest.mock
    
    mock_redis_instance = 'Redis<><><host=127.0.0.1,port=6379,db=0>>>'
    
    mock_redis_cache = unittest.mock.Mock(RedisCache)
    mock_redis_cache.redis_instance = mock_redis_instance
    

    Ahora, cuando llames al método get_conn, devolverá la instancia de mock_redis_instance que estableciste.</host=127.0.0.1,port=6379,db=0>

Comments are closed.