Skip to content

Commit 9b00e4f

Browse files
authored
stable-25-1: ability to test different ydb flavours (ydb-platform#16681)
1 parent 5d617db commit 9b00e4f

File tree

9 files changed

+63
-3
lines changed

9 files changed

+63
-3
lines changed

ydb/tests/functional/tenants/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
# but somehow it does not
88
#
99
# for ydb_{cluster, database, ...} fixture family
10-
pytest_plugins = 'ydb.tests.library.fixtures'
10+
pytest_plugins = ['ydb.tests.library.fixtures', 'ydb.tests.library.flavours']
1111

1212

1313
@pytest.fixture(scope='module')

ydb/tests/functional/tenants/test_users_groups_with_acl.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ def domain_login_only(request):
1919

2020

2121
@pytest.fixture(scope='module')
22-
def ydb_configurator(ydb_cluster_configuration, domain_login_only):
23-
config_generator = KikimrConfigGenerator(**ydb_cluster_configuration)
22+
def ydb_configurator(ydb_cluster_configuration, domain_login_only, ydb_flavour_path):
23+
config_generator = KikimrConfigGenerator(binary_paths=[ydb_flavour_path], **ydb_cluster_configuration)
2424
config_generator.yaml_config['auth_config'] = {
2525
'domain_login_only': domain_login_only,
2626
}

ydb/tests/functional/tenants/ya.make

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ TEST_SRCS(
1919

2020
SPLIT_FACTOR(20)
2121

22+
INCLUDE(${ARCADIA_ROOT}/ydb/tests/library/flavours/flavours_deps.inc)
23+
2224
DEPENDS(
2325
ydb/apps/ydbd
2426
)
@@ -27,6 +29,7 @@ PEERDIR(
2729
contrib/python/requests
2830
ydb/tests/library
2931
ydb/tests/library/fixtures
32+
ydb/tests/library/flavours
3033
ydb/tests/library/clients
3134
ydb/tests/oss/ydb_sdk_import
3235
ydb/public/sdk/python
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import os
2+
3+
import yatest
4+
import pytest
5+
6+
FLAVOUR_TO_PATH = {}
7+
8+
_PREFIX = "YDB_FLAVOUR_"
9+
10+
for key, value in os.environ.items():
11+
if key.startswith(_PREFIX):
12+
new_key = key[len(_PREFIX):]
13+
FLAVOUR_TO_PATH[new_key] = value
14+
15+
if not FLAVOUR_TO_PATH:
16+
raise RuntimeError("Flavours not found. Did you forget to include 'tests/library/flavours/flavours_deps.inc' in ya.make?")
17+
18+
19+
@pytest.fixture(scope='module', params=FLAVOUR_TO_PATH.values(), ids=FLAVOUR_TO_PATH.keys())
20+
def ydb_flavour_path(request):
21+
"""
22+
This fixture is a way to test different ydb flavours in one parametrized test
23+
"""
24+
return yatest.common.binary_path(request.param)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
DEPENDS(
2+
ydb/apps/ydbd
3+
)
4+
5+
ENV(YDB_FLAVOUR_YDB="ydb/apps/ydbd/ydbd")
6+
7+
IF (NOT OPENSOURCE)
8+
INCLUDE(${ARCADIA_ROOT}/kikimr/tests/flavours/flavours_deps.inc)
9+
ENDIF()

ydb/tests/library/flavours/ya.make

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
PY3_LIBRARY()
2+
3+
PY_SRCS(
4+
__init__.py
5+
)
6+
7+
END()

ydb/tests/library/harness/kikimr_config.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,16 @@ def __init__(
259259
self.yaml_config["local_pg_wire_config"] = {}
260260
self.yaml_config["local_pg_wire_config"]["listening_port"] = os.getenv('PGWIRE_LISTENING_PORT')
261261

262+
# dirty hack for internal ydbd flavour
263+
if "cert" in self.get_binary_path(0):
264+
# Hardcoded feature flags. Should be hardcoded in binary itself
265+
self.yaml_config["feature_flags"]["enable_strict_acl_check"] = True
266+
self.yaml_config["feature_flags"]["enable_strict_user_management"] = True
267+
self.yaml_config["feature_flags"]["enable_database_admin"] = True
268+
self.yaml_config["feature_flags"]["database_yaml_config_allowed"] = True
269+
self.yaml_config["feature_flags"]["enable_resource_pools"] = False
270+
self.yaml_config["feature_flags"]["check_database_access_permission"] = True
271+
262272
self.yaml_config["feature_flags"]["enable_public_api_external_blobs"] = enable_public_api_external_blobs
263273

264274
# for faster shutdown: there is no reason to wait while tablets are drained before whole cluster is stopping

ydb/tests/library/ut/ya.make

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
PY3TEST()
22

3+
ENV(YDB_DRIVER_BINARY="ydb/apps/ydbd/ydbd")
4+
5+
DEPENDS(
6+
ydb/apps/ydbd
7+
)
8+
39
PEERDIR(
410
ydb/tests/library
511
yql/essentials/providers/common/proto

ydb/tests/library/ya.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ END()
107107
RECURSE(
108108
compatibility
109109
clients
110+
flavours
110111
serializability
111112
test_meta
112113
wardens

0 commit comments

Comments
 (0)