Python 在pytest中模拟redis连接
我正在尝试使用Python 在pytest中模拟redis连接,python,redis,pytest,python-mock,Python,Redis,Pytest,Python Mock,我正在尝试使用pytest测试我的应用程序。应用程序使用Redis存储变量,对该变量的更改将实时报告给与应用程序连接的用户 我想创建这样一个装置,它将在我的应用程序中修补Redis()构造函数,以连接在后台运行的本地Redis数据库 我在我的conftest.py中尝试过类似的方法: @pytest.fixture(autouse=True) def redis_connection(): r_conn = redis.Redis('127.0.0.1', 6337) with
pytest
测试我的应用程序。应用程序使用Redis存储变量,对该变量的更改将实时报告给与应用程序连接的用户
我想创建这样一个装置,它将在我的应用程序中修补Redis()
构造函数,以连接在后台运行的本地Redis数据库
我在我的conftest.py中尝试过类似的方法:
@pytest.fixture(autouse=True)
def redis_connection():
r_conn = redis.Redis('127.0.0.1', 6337)
with mock.patch('app.redis_utils.redis_connect') as redis_connect_mock:
redis_connect_mock.return_value = r_conn
yield redis_connect_mock
r_conn.flushdb()
app.redis\u utils.redis\u connect
内容:
def redis_connect() -> Redis:
return Redis(**settings.REDIS_SETTINGS)
但当我的应用程序尝试从redis数据库访问数据时(我在redis实例上调用.get()
),这会失败
AssertionError:assert为None
如何强制redis\u connect
函数返回此特定实例:redis.redis('127.0.0.1',6337)
你可能应该考虑使用ReIIS模拟库。
AssertionError: assert <MagicMock name='redis_connect.get()' id='139688062779600'> is None