userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
service.py
1
import
dataclasses
2
import
os
3
import
pathlib
4
5
from
testsuite.environment
import
service
6
from
testsuite.environment
import
utils
7
8
DEFAULT_HOST =
'localhost'
9
DEFAULT_GRPC_TLS_PORT = 2135
10
DEFAULT_GRPC_PORT = 2136
11
DEFAULT_MON_PORT = 8765
12
DEFAULT_DATABASE =
'local'
13
DEFAULT_CONTAINER_NAME =
'ydb-local-testsuite'
14
DEFAULT_DOCKER_IMAGE =
'cr.yandex/yc/yandex-docker-local-ydb:latest'
15
16
PLUGIN_DIR = pathlib.Path(__file__).parent
17
SCRIPTS_DIR = PLUGIN_DIR.joinpath(
'scripts'
)
18
19
20
@dataclasses.dataclass(frozen=True)
21
class
ServiceSettings
:
22
host: str
23
grpc_port: int
24
mon_port: int
25
ic_port: int
26
database: str
27
28
29
def
create_ydb_service(
30
service_name: str,
31
working_dir: str,
32
settings: ServiceSettings |
None
=
None
,
33
env: dict[str, str] |
None
=
None
,
34
):
35
if
settings
is
None
:
36
settings = get_service_settings()
37
return
service.ScriptService(
38
service_name=service_name,
39
script_path=str(SCRIPTS_DIR.joinpath(
'service-ydb'
)),
40
working_dir=working_dir,
41
environment={
42
'YDB_TMPDIR'
: working_dir,
43
'YDB_SCRIPTS_DIR'
: str(SCRIPTS_DIR),
44
'YDB_HOSTNAME'
: settings.host,
45
'YDB_GRPC_PORT'
: str(settings.grpc_port),
46
'YDB_GRPC_TLS_PORT'
: str(DEFAULT_GRPC_TLS_PORT),
47
'YDB_MON_PORT'
: str(settings.mon_port),
48
'YDB_CONTAINER_NAME'
: DEFAULT_CONTAINER_NAME,
49
'YDB_DOCKER_IMAGE'
: DEFAULT_DOCKER_IMAGE,
50
**(env
or
{}),
51
},
52
check_ports=[settings.grpc_port, settings.mon_port],
53
)
54
55
56
def
get_service_settings():
57
return
ServiceSettings
(
58
host=os.getenv(
'TESTSUITE_YDB_HOST'
, DEFAULT_HOST),
59
grpc_port=utils.getenv_int(
60
'TESTSUITE_YDB_GRPC_PORT'
,
61
DEFAULT_GRPC_PORT,
62
),
63
mon_port=utils.getenv_int(
'TESTSUITE_YDB_MON_PORT'
, DEFAULT_MON_PORT),
64
ic_port=utils.getenv_int(
'TESTSUITE_YDB_IC_PORT'
, 0),
65
database=os.getenv(
'TESTSUITE_YDB_DATABASE'
, DEFAULT_DATABASE),
66
)
testsuite
pytest_plugins
pytest_userver
plugins
ydb
service.py
Generated on
for userver by
Doxygen
1.17.0