Skip to content

Commit d1e2c86

Browse files
committed
use tenacity in conftest
1 parent e2a23e2 commit d1e2c86

File tree

1 file changed

+7
-25
lines changed

1 file changed

+7
-25
lines changed

Diff for: tests/conftest.py

+7-25
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@
77
import pytest
88
import redis
99
import requests
10-
from requests.exceptions import RequestException
11-
from redis.exceptions import RedisError
12-
from sqlalchemy.exc import OperationalError
1310
from sqlalchemy import create_engine
1411
from sqlalchemy.orm import sessionmaker, clear_mappers
12+
from tenacity import retry, stop_after_delay
1513

1614
from allocation.adapters.orm import metadata, start_mappers
1715
from allocation import config
@@ -36,36 +34,20 @@ def session(session_factory):
3634
return session_factory()
3735

3836

37+
@retry(stop=stop_after_delay(10))
3938
def wait_for_postgres_to_come_up(engine):
40-
deadline = time.time() + 10
41-
while time.time() < deadline:
42-
try:
43-
return engine.connect()
44-
except OperationalError:
45-
time.sleep(0.5)
46-
pytest.fail("Postgres never came up")
39+
return engine.connect()
4740

4841

42+
@retry(stop=stop_after_delay(10))
4943
def wait_for_webapp_to_come_up():
50-
deadline = time.time() + 10
51-
url = config.get_api_url()
52-
while time.time() < deadline:
53-
try:
54-
return requests.get(url)
55-
except RequestException:
56-
time.sleep(0.5)
57-
pytest.fail("API never came up")
44+
return requests.get(config.get_api_url())
5845

5946

47+
@retry(stop=stop_after_delay(10))
6048
def wait_for_redis_to_come_up():
61-
deadline = time.time() + 5
6249
r = redis.Redis(**config.get_redis_host_and_port())
63-
while time.time() < deadline:
64-
try:
65-
return r.ping()
66-
except RedisError:
67-
time.sleep(0.5)
68-
pytest.fail("Redis never came up")
50+
return r.ping()
6951

7052

7153
@pytest.fixture(scope="session")

0 commit comments

Comments
 (0)