6
6
import json
7
7
import logging
8
8
import socket
9
- from typing import Any , Dict , Optional , Tuple
9
+ from typing import Any , Dict , Iterable , Optional , Tuple
10
10
11
11
import aio_pika
12
12
import pytest
13
13
import tenacity
14
14
from models_library .settings .rabbit import RabbitConfig
15
+ from tenacity .before_sleep import before_sleep_log
16
+ from tenacity .stop import stop_after_attempt
17
+ from tenacity .wait import wait_fixed
15
18
16
19
from .helpers .utils_docker import get_service_published_port
17
20
@@ -31,16 +34,12 @@ async def rabbit_config(
31
34
) -> RabbitConfig :
32
35
prefix = testing_environ_vars ["SWARM_STACK_NAME" ]
33
36
assert f"{ prefix } _rabbit" in docker_stack ["services" ]
34
-
35
37
rabbit_config = RabbitConfig (
36
38
user = testing_environ_vars ["RABBIT_USER" ],
37
39
password = testing_environ_vars ["RABBIT_PASSWORD" ],
38
40
host = "127.0.0.1" ,
39
41
port = get_service_published_port ("rabbit" , testing_environ_vars ["RABBIT_PORT" ]),
40
- channels = {
41
- "log" : "logs_channel" ,
42
- "instrumentation" : "instrumentation_channel" ,
43
- },
42
+ channels = json .loads (testing_environ_vars ["RABBIT_CHANNELS" ]),
44
43
)
45
44
46
45
url = rabbit_config .dsn
@@ -57,7 +56,7 @@ async def rabbit_service(rabbit_config: RabbitConfig, monkeypatch) -> RabbitConf
57
56
monkeypatch .setenv ("RABBIT_PASSWORD" , rabbit_config .password .get_secret_value ())
58
57
monkeypatch .setenv ("RABBIT_CHANNELS" , json .dumps (rabbit_config .channels ))
59
58
60
- return RabbitConfig
59
+ return rabbit_config
61
60
62
61
63
62
@pytest .fixture (scope = "function" )
@@ -126,7 +125,7 @@ async def rabbit_exchange(
126
125
async def rabbit_queue (
127
126
rabbit_channel : aio_pika .Channel ,
128
127
rabbit_exchange : Tuple [aio_pika .Exchange , aio_pika .Exchange ],
129
- ) -> aio_pika .Queue :
128
+ ) -> Iterable [ aio_pika .Queue ] :
130
129
(logs_exchange , instrumentation_exchange ) = rabbit_exchange
131
130
# declare queue
132
131
queue = await rabbit_channel .declare_queue (exclusive = True )
@@ -141,9 +140,9 @@ async def rabbit_queue(
141
140
142
141
143
142
@tenacity .retry (
144
- wait = tenacity . wait_fixed (5 ),
145
- stop = tenacity . stop_after_attempt (60 ),
146
- before_sleep = tenacity . before_sleep_log (log , logging .INFO ),
143
+ wait = wait_fixed (5 ),
144
+ stop = stop_after_attempt (60 ),
145
+ before_sleep = before_sleep_log (log , logging .INFO ),
147
146
reraise = True ,
148
147
)
149
148
async def wait_till_rabbit_responsive (url : str ) -> None :
0 commit comments