7
7
import pytest
8
8
import redis
9
9
import requests
10
- from requests .exceptions import RequestException
11
- from redis .exceptions import RedisError
12
- from sqlalchemy .exc import OperationalError
13
10
from sqlalchemy import create_engine
14
11
from sqlalchemy .orm import sessionmaker , clear_mappers
12
+ from tenacity import retry , stop_after_delay
15
13
16
14
from allocation .adapters .orm import metadata , start_mappers
17
15
from allocation import config
@@ -36,36 +34,20 @@ def session(session_factory):
36
34
return session_factory ()
37
35
38
36
37
+ @retry (stop = stop_after_delay (10 ))
39
38
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 ()
47
40
48
41
42
+ @retry (stop = stop_after_delay (10 ))
49
43
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 ())
58
45
59
46
47
+ @retry (stop = stop_after_delay (10 ))
60
48
def wait_for_redis_to_come_up ():
61
- deadline = time .time () + 5
62
49
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 ()
69
51
70
52
71
53
@pytest .fixture (scope = "session" )
0 commit comments