在MagicMock中使用SQLAlchemy`and_`

问题描述 投票:0回答:1

我有一个要模拟的SQLAlchemy调用。

Model.query.filter(and_(Model.id.in_(some_ids), Model.other_id != None)).all()

我正在使用MagicMock模拟此调用并为其提供返回值。我遇到的问题是当我添加and_时。

为没有and_的呼叫设置返回值很简单:

mock_model_class.query.filter().all.return_value = some_value

[当我尝试模拟and_时,我从SQLAlchemy收到错误。

sqlalchemy.exc.ArgumentError: SQL expression object or string expected, got object of type <class 'unittest.mock.MagicMock'> instead

我尝试了不同的变体,但无济于事,例如:

mock_model_class.query.filter().and_().all.return_valuemock_model_class.query.filter(and_).all.return_value

我是否缺少某些语法?

python sqlalchemy magicmock
1个回答
0
投票

只是模拟sqlalchemy.and_。原因是在模拟筛选器执行之前调用了此方法。

© www.soinside.com 2019 - 2024. All rights reserved.