我在我的一些代碼中使用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