как имитировать сеанс Redis в python flask - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь протестировать свои приложения, используя pytest. Приложение использует Redis для хранения переменной. с этой переменной приложение может определить какое-либо действие.

вот мой код пары для тестирования в app.py

redis_config = {
    "host": "127.0.0.1",
    "port": 6379,
    "db": 0,
    "charset": "utf-8",
    "decode_responses":True
}

save_redis = redis.Redis(**redis_config)

if save_redis.get("token") is None:
    //do something
else :
    //do another thing

проблема заключалась в том, что тест был полностью запущен без ошибок, но отдых под IF или else функция не покрывает протестированные

Я пробовал в своем test_app.py

save_redis = {}
def set(key, val):
    save_redis[key] = val

def get(key):
    return save_redis[key]
    
def delete(key):
    return save_redis.pop(key, None)

@mock.patch('redis.StrictRedis.get', side_effect=get)
@mock.patch('redis.StrictRedis.set', side_effect=set)
@mock.patch('redis.StrictRedis.delete', side_effect=delete)
@mock.patch('requests.post', side_effect=mocked_requests_get)
def test_check_token(self, get_mock, mock_redis_get, mock_redis_set, client):
   //do testing code
...