我有一个方法,它执行一些工作,返回一些值并将其传递给sqlalchemy查询。
在测试的情况下,我尝试模拟这个方法,但是得到了异常:sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'MagicMock'
我有代码,如下所示:
from mock import patch
from sqlalchemy import Integer, Column
from pr.core.model import Base
from pr.core.model import Session
class SomeModel(Base):
__tablename__ = 'table'
id = Column(Integer, primary_key=True)
class SomeObj(object):
def some_method(self):
return 1
def call(self):
return Session.query(SomeModel).filter(SomeModel.id == self.some_method()).all()
def main():
with patch('__main__.SomeObj.some_method') as mocked:
SomeObj().call()
assert mocked.called
if __name__ == '__main__':
main()
在调用了这样的代码后,我得到了这样的回溯:
^{pr2}$有什么方法可以恰当地模仿这个方法吗?在
目前没有回答
相关问题 更多 >
编程相关推荐