mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git
synced 2024-11-24 13:01:28 +00:00
36 lines
706 B
Python
36 lines
706 B
Python
|
import pytest
|
||
|
from selfprivacy_api.utils.waitloop import wait_until_success
|
||
|
|
||
|
|
||
|
class Counter:
|
||
|
def __init__(self):
|
||
|
self.count = 0
|
||
|
|
||
|
def tick(self):
|
||
|
self.count += 1
|
||
|
|
||
|
def reset(self):
|
||
|
self.count = 0
|
||
|
|
||
|
|
||
|
def failing_operation(c: Counter) -> str:
|
||
|
if c.count < 10:
|
||
|
c.tick()
|
||
|
raise ValueError("nooooope")
|
||
|
return "yeees"
|
||
|
|
||
|
|
||
|
def test_wait_until_success():
|
||
|
counter = Counter()
|
||
|
|
||
|
with pytest.raises(TimeoutError):
|
||
|
wait_until_success(
|
||
|
lambda: failing_operation(counter), interval=0.1, timeout_sec=0.5
|
||
|
)
|
||
|
|
||
|
counter.reset()
|
||
|
|
||
|
wait_until_success(
|
||
|
lambda: failing_operation(counter), interval=0.1, timeout_sec=1.1
|
||
|
)
|