import pytest from pydantic import BaseModel from datetime import datetime from typing import Optional from selfprivacy_api.utils.redis_model_storage import store_model_as_hash, hash_as_model from selfprivacy_api.utils.redis_pool import RedisPool TEST_KEY = "model_storage" redis = RedisPool().get_connection() @pytest.fixture() def clean_redis(): redis.delete(TEST_KEY) class DummyModel(BaseModel): name: str date: Optional[datetime] def test_store_retrieve(): model = DummyModel(name="test", date=datetime.now()) store_model_as_hash(redis, TEST_KEY, model) assert hash_as_model(redis, TEST_KEY, DummyModel) == model def test_store_retrieve_none(): model = DummyModel(name="test", date=None) store_model_as_hash(redis, TEST_KEY, model) assert hash_as_model(redis, TEST_KEY, DummyModel) == model