это метод, который я сделал с помощью связанных запросов к БД.
import math
def get_all_keys():
db_session = DBSession()
keys = db_session.query(SomeClass).all()
Я должен издеваться DBSession().query(SomeClass).all()
.Я пробовал, но ничего не получалось.Вот мои испытания.
@patch('app.modules.somemodule.DBSession')
def test_asd(self, DBSession):
DBSession.execute.query.execute.all.return_value = [1, 2, 3]
self.assertListEqual(DBSession.query('qwe').all(), [1, 2, 3])
В этой попытке, если я попытаюсь напечатать DBSession()
, я получу MagicMock
объект, который кажется нормальным.Но когда я запускаю pytest
, я получаю следующую ошибку.
self = <test_some_module.SomeModuleTests testMethod=test_asd>, DBSession = <MagicMock name='DBSession' id='140028663111976'>
@patch('app.modules.somemodule.DBSession')
def test_asd(self, DBSession):
DBSession.execute.query.execute.all.return_value = [1, 2, 3]
print(DBSession().query('qwe').all())
> self.assertListEqual(DBSession.query('qwe').all(), [1, 2, 3])
E AssertionError: First sequence is not a list: <MagicMock name='DBSession.query().all()' id='140028662649184'>
tests/test_some_module.py:21: AssertionError
Похоже, я что-то не так сделал во время издевательства.В чем моя ошибка?Я проверил документацию.