selfprivacy-rest-api/tests/test_utils.py

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
)