Совершенно новый для этой библиотеки
Вот стек вызовов моего смоделированного объекта
[call(),
call('test'),
call().instance('test'),
call().instance().database('test'),
call().instance().database().snapshot(),
call().instance().database().snapshot().__enter__(),
call().instance().database().snapshot().__enter__().execute_sql('SELECT * FROM users'),
call().instance().database().snapshot().__exit__(None, None, None),
call().instance().database().snapshot().__enter__().execute_sql().__iter__()]
Вот код, который я использовал
@mock.patch('testmodule.Client')
def test_read_with_query(self, mock_client):
mock = mock_client()
pipeline = TestPipeline()
records = pipeline | ReadFromSpanner(TEST_PROJECT_ID, TEST_INSTANCE_ID, self.database_id).with_query('SELECT * FROM users')
pipeline.run()
print mock_client.mock_calls
exit()
Я хочуподшучивать над всем этим стеком, который в конечном итоге даст мне некоторые фальшивые данные, которые я предоставлю в качестве возвращаемого значения.
Тестируемый код:
spanner_client = Client(self.project_id)
instance = spanner_client.instance(self.instance_id)
database = instance.database(self.database_id)
with database.snapshot() as snapshot:
results = snapshot.execute_sql(self.query)
Так что мои требования состоят в том, чтобы results
переменная должна содержать данные, которые я предоставлю.
Как я могу предоставить возвращаемое значение для таких вложенных вызовов
Спасибо