[#301] Update all tests EC policy
Signed-off-by: Dmitriy Zayakin <d.zayakin@yadro.com>
This commit is contained in:
parent
7d0fa79fb2
commit
1afadfa363
2 changed files with 205 additions and 401 deletions
|
@ -6,7 +6,6 @@ from datetime import datetime, timedelta, timezone
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
from frostfs_testlib.storage.grpc_operations.client_wrappers import CliClientWrapper
|
|
||||||
import pytest
|
import pytest
|
||||||
from dateutil import parser
|
from dateutil import parser
|
||||||
from frostfs_testlib import plugins, reporter
|
from frostfs_testlib import plugins, reporter
|
||||||
|
@ -28,6 +27,8 @@ from frostfs_testlib.storage.dataclasses.frostfs_services import StorageNode
|
||||||
from frostfs_testlib.storage.dataclasses.object_size import ObjectSize
|
from frostfs_testlib.storage.dataclasses.object_size import ObjectSize
|
||||||
from frostfs_testlib.storage.dataclasses.policy import PlacementPolicy
|
from frostfs_testlib.storage.dataclasses.policy import PlacementPolicy
|
||||||
from frostfs_testlib.storage.dataclasses.wallet import WalletInfo
|
from frostfs_testlib.storage.dataclasses.wallet import WalletInfo
|
||||||
|
from frostfs_testlib.storage.grpc_operations.client_wrappers import CliClientWrapper
|
||||||
|
from frostfs_testlib.storage.grpc_operations.interfaces import GrpcClientWrapper
|
||||||
from frostfs_testlib.testing.cluster_test_base import ClusterTestBase
|
from frostfs_testlib.testing.cluster_test_base import ClusterTestBase
|
||||||
from frostfs_testlib.testing.parallel import parallel
|
from frostfs_testlib.testing.parallel import parallel
|
||||||
from frostfs_testlib.testing.test_control import run_optionally, wait_for_success
|
from frostfs_testlib.testing.test_control import run_optionally, wait_for_success
|
||||||
|
@ -41,6 +42,7 @@ logger = logging.getLogger("NeoLogger")
|
||||||
SERVICE_ACTIVE_TIME = 20
|
SERVICE_ACTIVE_TIME = 20
|
||||||
WALLTETS_IN_POOL = 2
|
WALLTETS_IN_POOL = 2
|
||||||
|
|
||||||
|
|
||||||
# Add logs check test even if it's not fit to mark selectors
|
# Add logs check test even if it's not fit to mark selectors
|
||||||
def pytest_configure(config: pytest.Config):
|
def pytest_configure(config: pytest.Config):
|
||||||
markers = config.option.markexpr
|
markers = config.option.markexpr
|
||||||
|
@ -51,6 +53,8 @@ def pytest_configure(config: pytest.Config):
|
||||||
number_key = pytest.StashKey[str]()
|
number_key = pytest.StashKey[str]()
|
||||||
start_time = pytest.StashKey[int]()
|
start_time = pytest.StashKey[int]()
|
||||||
test_outcome = pytest.StashKey[str]()
|
test_outcome = pytest.StashKey[str]()
|
||||||
|
|
||||||
|
|
||||||
# pytest hook. Do not rename
|
# pytest hook. Do not rename
|
||||||
def pytest_collection_modifyitems(items: list[pytest.Item]):
|
def pytest_collection_modifyitems(items: list[pytest.Item]):
|
||||||
# Change order of tests based on @pytest.mark.order(<int>) marker
|
# Change order of tests based on @pytest.mark.order(<int>) marker
|
||||||
|
@ -108,11 +112,7 @@ def pytest_generate_tests(metafunc: pytest.Metafunc):
|
||||||
return
|
return
|
||||||
|
|
||||||
metafunc.fixturenames.append("cycle")
|
metafunc.fixturenames.append("cycle")
|
||||||
metafunc.parametrize(
|
metafunc.parametrize("cycle", range(1, TEST_CYCLES_COUNT + 1), ids=[f"cycle {cycle}" for cycle in range(1, TEST_CYCLES_COUNT + 1)])
|
||||||
"cycle",
|
|
||||||
range(1, TEST_CYCLES_COUNT + 1),
|
|
||||||
ids=[f"cycle {cycle}" for cycle in range(1, TEST_CYCLES_COUNT + 1)],
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
|
@ -148,11 +148,7 @@ def require_multiple_interfaces(cluster: Cluster):
|
||||||
def max_object_size(cluster: Cluster, client_shell: Shell) -> int:
|
def max_object_size(cluster: Cluster, client_shell: Shell) -> int:
|
||||||
storage_node = cluster.storage_nodes[0]
|
storage_node = cluster.storage_nodes[0]
|
||||||
wallet = WalletInfo.from_node(storage_node)
|
wallet = WalletInfo.from_node(storage_node)
|
||||||
net_info = get_netmap_netinfo(
|
net_info = get_netmap_netinfo(wallet=wallet, endpoint=storage_node.get_rpc_endpoint(), shell=client_shell)
|
||||||
wallet=wallet,
|
|
||||||
endpoint=storage_node.get_rpc_endpoint(),
|
|
||||||
shell=client_shell,
|
|
||||||
)
|
|
||||||
yield net_info["maximum_object_size"]
|
yield net_info["maximum_object_size"]
|
||||||
|
|
||||||
|
|
||||||
|
@ -176,8 +172,7 @@ def complex_object_size(max_object_size: int) -> ObjectSize:
|
||||||
# By default we want all tests to be executed with both object sizes
|
# By default we want all tests to be executed with both object sizes
|
||||||
# This can be overriden in choosen tests if needed
|
# This can be overriden in choosen tests if needed
|
||||||
@pytest.fixture(
|
@pytest.fixture(
|
||||||
scope="session",
|
scope="session", params=[pytest.param("simple", marks=pytest.mark.simple), pytest.param("complex", marks=pytest.mark.complex)]
|
||||||
params=[pytest.param("simple", marks=pytest.mark.simple), pytest.param("complex", marks=pytest.mark.complex)],
|
|
||||||
)
|
)
|
||||||
def object_size(simple_object_size: ObjectSize, complex_object_size: ObjectSize, request: pytest.FixtureRequest) -> ObjectSize:
|
def object_size(simple_object_size: ObjectSize, complex_object_size: ObjectSize, request: pytest.FixtureRequest) -> ObjectSize:
|
||||||
if request.param == "simple":
|
if request.param == "simple":
|
||||||
|
@ -203,17 +198,14 @@ def frostfs_cli(client_shell: Shell, default_wallet: WalletInfo) -> FrostfsCli:
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
@allure.title("Init CliClientWrapper with local Frostfs CLI")
|
@allure.title("Init GrpcClientWrapper with local Frostfs CLI")
|
||||||
def grpc_client(frostfs_cli: FrostfsCli) -> CliClientWrapper:
|
def grpc_client(frostfs_cli: FrostfsCli) -> GrpcClientWrapper:
|
||||||
return CliClientWrapper(frostfs_cli)
|
return CliClientWrapper(frostfs_cli)
|
||||||
|
|
||||||
|
|
||||||
# By default we want all tests to be executed with both storage policies.
|
# By default we want all tests to be executed with both storage policies.
|
||||||
# This can be overriden in choosen tests if needed.
|
# This can be overriden in choosen tests if needed.
|
||||||
@pytest.fixture(
|
@pytest.fixture(scope="session", params=[pytest.param("rep", marks=pytest.mark.rep), pytest.param("ec", marks=pytest.mark.ec)])
|
||||||
scope="session",
|
|
||||||
params=[pytest.param("rep", marks=pytest.mark.rep), pytest.param("ec", marks=pytest.mark.ec)],
|
|
||||||
)
|
|
||||||
def placement_policy(
|
def placement_policy(
|
||||||
rep_placement_policy: PlacementPolicy, ec_placement_policy: PlacementPolicy, request: pytest.FixtureRequest
|
rep_placement_policy: PlacementPolicy, ec_placement_policy: PlacementPolicy, request: pytest.FixtureRequest
|
||||||
) -> PlacementPolicy:
|
) -> PlacementPolicy:
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue