У меня проблема с юнит-тестами через pytest.
Для контекстуализации я пытаюсь проверить наличие и наличие данных на моем Redis.
Для моих взаимодействий с Redis я использую это : https://github.com/underyx/flask-redis/blob/master/flask_redis/client.py
Мои тесты выглядят так:
sample_key = b"-vmbFSk5WRKwnIRIkBLWtEd5g9Hqy3IO67Bmdnqf2Ek="
user_uuid = "8bb739e5-cf44-4e87-b1f7-b8eb1cc6c25d"
def test_check_already_connected():
assert check_already_connected(user_uuid) is False
RedisWrapper.set(sample_key, '3', user_uuid)
def test_check_already_connected1():
RedisWrapper.set(sample_key, '3', user_uuid)
print("keys")
print(RedisWrapper.get_all_keys())
assert check_already_connected(user_uuid) is True
Вот что я получаю, когда запускаю свои тесты:
tests/test_authentication.py Error - the JSON object must be str, bytes or bytearray, not NoneType
.Error - the JSON object must be str, bytes or bytearray, not NoneType
keys
[]
F
============================================= FAILURES =============================================
__________________________________ test_check_already_connected1 ___________________________________
def test_check_already_connected1():
RedisWrapper.set(sample_key, '3', user_uuid)
print("keys")
print(RedisWrapper.get_all_keys())
> assert check_already_connected(user_uuid) is True
E AssertionError: assert False is True
E + where False = check_already_connected('8bb739e5-cf44-4e87-b1f7-b8eb1cc6c25d')
tests/test_authentication.py:26: AssertionError
=================================== 1 failed, 1 passed in 0.42s ====================================
Моя оболочка для redis: https://textup.fr/435412an
Инициализация redis_client в приложении / init .py
app = Flask(__name__)
redis_client = FlaskRedis(app)
Функция, которую я хочу протестировать:
def check_already_connected(user_uuid):
redis_keys = RedisWrapper.get_all_keys()
if redis_keys:
for key in redis_keys:
entry = RedisWrapper.get(key)
account_uuid = entry.get('3')
if account_uuid == str(user_uuid):
return True
return False
Я предполагаю, что проблема заключается в инициализации Redis до моих тестов, но я протестировал несколько решений без успеха.