Я использую библиотеку waiting
в некоторых своих кодах, чтобы подождать, пока условие станет истинным. В качестве части библиотеки waiting.wait
возвращает True
, когда предикат является истинным; в противном случае он выбрасывает и исключает или ожидает навсегда в зависимости от значений таймаута и т. д.Как я могу высмеять библиотеку ожидания в Python?
Я хотел бы исправить это в своих тестах, чтобы всегда возвращать True
, не попадая в цикл ожидания. Вот моя попытка:
#!/usr/bin/env python3
from unittest.mock import Mock
import waiting
from waiting import wait
def test_waiting():
waiting.wait.return_value = True
# Below *should* wait forever because it can never be true.
# Want to make it return true instead.
return wait(lambda: False)
if __name__ == "__main__":
assert(test_waiting())
Что я нахожу, однако, заключается в том, что он на самом деле требует кода библиотеки вместо короткого замыкания возврата.
Как заставить этот метод просто вернуть значение (или поднять побочный эффект) без фактического вызова кода?
Ну, это было глупо от меня. :) Работает отлично. Ура! – erip