userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
pytest_plugin.py
1
import
asyncio
2
3
import
pytest
4
5
from
.
import
classes, service
6
7
8
def
pytest_addoption(parser):
9
group = parser.getgroup(
'rabbitmq'
)
10
group.addoption(
'--rabbitmq'
)
11
group.addoption(
12
'--no-rabbitmq'
,
13
help=
'Disable use of RabbitMQ'
,
14
action=
'store_true'
,
15
)
16
17
18
def
pytest_configure(config):
19
config.addinivalue_line(
20
'markers'
,
21
'rabbitmq: per-test RabbitMQ initialization'
,
22
)
23
24
25
def
pytest_service_register(register_service):
26
register_service(
'rabbitmq'
, service.create_rabbitmq_service)
27
28
29
@pytest.fixture
30
def
rabbitmq(_rabbitmq_connection) -> classes.Control:
31
return
_rabbitmq_connection
32
33
34
@pytest.fixture(scope='session')
35
async def
_rabbitmq_connection(
36
_rabbitmq_service,
37
_rabbitmq_service_settings,
38
) -> classes.Control:
39
event_loop = asyncio.get_running_loop()
40
control = classes.Control(
41
enabled=_rabbitmq_service,
42
conn_info=_rabbitmq_service_settings.get_connection_info(),
43
)
44
yield
control
45
await control.teardown()
46
47
48
@pytest.fixture(scope='session')
49
def
rabbitmq_disabled(pytestconfig) -> bool:
50
return
pytestconfig.option.no_rabbitmq
51
52
53
@pytest.fixture(scope='session')
54
def
_rabbitmq_service_settings() -> service.ServiceSettings:
55
return
service.get_service_settings()
56
57
58
@pytest.fixture(scope='session')
59
def
_rabbitmq_service(
60
ensure_service_started,
61
rabbitmq_disabled,
62
pytestconfig,
63
_rabbitmq_service_settings,
64
):
65
if
rabbitmq_disabled:
66
return
False
67
if
not
pytestconfig.option.rabbitmq:
68
ensure_service_started(
'rabbitmq'
, settings=_rabbitmq_service_settings)
69
return
True
en
testsuite
databases
rabbitmq
pytest_plugin.py
Generated on
for userver by
Doxygen
1.17.0