将 SQLAlchemy `and_` 与 MagicMock 一起使用
Using SQLAlchemy `and_` with MagicMock
我有一个要模拟的 SQLAlchemy 调用。
Model.query.filter(and_(Model.id.in_(some_ids), Model.other_id != None)).all()
我正在使用 MagicMock 来模拟这个调用并给它一个 return 值。我遇到的问题是当我添加 and_
.
为没有 and_
的调用设置 return 值非常简单:
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_value
mock_model_class.query.filter(and_).all.return_value
我是否缺少一些语法?
只是模拟 sqlalchemy.and_
。原因是这是在执行模拟过滤器之前调用的。
我有一个要模拟的 SQLAlchemy 调用。
Model.query.filter(and_(Model.id.in_(some_ids), Model.other_id != None)).all()
我正在使用 MagicMock 来模拟这个调用并给它一个 return 值。我遇到的问题是当我添加 and_
.
为没有 and_
的调用设置 return 值非常简单:
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_value
mock_model_class.query.filter(and_).all.return_value
我是否缺少一些语法?
只是模拟 sqlalchemy.and_
。原因是这是在执行模拟过滤器之前调用的。