forked from TrueCloudLab/frostfs-testcases
Pass shell where it was missed
Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
This commit is contained in:
parent
4b3a5f60c4
commit
8e8a5b6efd
3 changed files with 44 additions and 19 deletions
|
@ -15,6 +15,7 @@ from common import (
|
|||
from epoch import tick_epoch
|
||||
from file_helper import generate_file
|
||||
from grpc_responses import OBJECT_ACCESS_DENIED, OBJECT_NOT_FOUND
|
||||
from neofs_testlib.shell import Shell
|
||||
from python_keywords.acl import (
|
||||
EACLAccess,
|
||||
EACLOperation,
|
||||
|
@ -64,12 +65,14 @@ class TestStorageGroup:
|
|||
objects = [oid]
|
||||
storage_group = put_storagegroup(self.main_wallet, cid, objects)
|
||||
|
||||
self.expect_success_for_storagegroup_operations(self.main_wallet, cid, objects, object_size)
|
||||
self.expect_success_for_storagegroup_operations(
|
||||
self.main_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
self.expect_failure_for_storagegroup_operations(
|
||||
self.other_wallet, cid, objects, storage_group
|
||||
)
|
||||
self.storagegroup_operations_by_system_ro_container(
|
||||
self.main_wallet, cid, objects, object_size
|
||||
self.main_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
|
||||
@allure.title("Test Storage Group in Public Container")
|
||||
|
@ -78,12 +81,14 @@ class TestStorageGroup:
|
|||
file_path = generate_file(object_size)
|
||||
oid = put_object(self.main_wallet, file_path, cid, shell=client_shell)
|
||||
objects = [oid]
|
||||
self.expect_success_for_storagegroup_operations(self.main_wallet, cid, objects, object_size)
|
||||
self.expect_success_for_storagegroup_operations(
|
||||
self.other_wallet, cid, objects, object_size
|
||||
self.main_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
self.expect_success_for_storagegroup_operations(
|
||||
self.other_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
self.storagegroup_operations_by_system_ro_container(
|
||||
self.main_wallet, cid, objects, object_size
|
||||
self.main_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
|
||||
@allure.title("Test Storage Group in Read-Only Container")
|
||||
|
@ -92,12 +97,14 @@ class TestStorageGroup:
|
|||
file_path = generate_file(object_size)
|
||||
oid = put_object(self.main_wallet, file_path, cid, shell=client_shell)
|
||||
objects = [oid]
|
||||
self.expect_success_for_storagegroup_operations(self.main_wallet, cid, objects, object_size)
|
||||
self.expect_success_for_storagegroup_operations(
|
||||
self.main_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
self.storagegroup_operations_by_other_ro_container(
|
||||
self.main_wallet, self.other_wallet, cid, objects, object_size
|
||||
self.main_wallet, self.other_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
self.storagegroup_operations_by_system_ro_container(
|
||||
self.main_wallet, cid, objects, object_size
|
||||
self.main_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
|
||||
@allure.title("Test Storage Group with Bearer Allow")
|
||||
|
@ -108,7 +115,9 @@ class TestStorageGroup:
|
|||
file_path = generate_file(object_size)
|
||||
oid = put_object(self.main_wallet, file_path, cid, shell=client_shell)
|
||||
objects = [oid]
|
||||
self.expect_success_for_storagegroup_operations(self.main_wallet, cid, objects, object_size)
|
||||
self.expect_success_for_storagegroup_operations(
|
||||
self.main_wallet, cid, objects, object_size, client_shell
|
||||
)
|
||||
storage_group = put_storagegroup(self.main_wallet, cid, objects)
|
||||
eacl_deny = [
|
||||
EACLRule(access=EACLAccess.DENY, role=role, operation=op)
|
||||
|
@ -128,7 +137,7 @@ class TestStorageGroup:
|
|||
],
|
||||
)
|
||||
self.expect_success_for_storagegroup_operations(
|
||||
self.main_wallet, cid, objects, object_size, bearer_file
|
||||
self.main_wallet, cid, objects, object_size, client_shell, bearer_file
|
||||
)
|
||||
|
||||
@allure.title("Test to check Storage Group lifetime")
|
||||
|
@ -146,7 +155,12 @@ class TestStorageGroup:
|
|||
@staticmethod
|
||||
@allure.step("Run Storage Group Operations And Expect Success")
|
||||
def expect_success_for_storagegroup_operations(
|
||||
wallet: str, cid: str, obj_list: list, object_size: int, bearer_token: Optional[str] = None
|
||||
wallet: str,
|
||||
cid: str,
|
||||
obj_list: list,
|
||||
object_size: int,
|
||||
shell: Shell,
|
||||
bearer_token: Optional[str] = None,
|
||||
):
|
||||
"""
|
||||
This func verifies if the Object's owner is allowed to
|
||||
|
@ -155,7 +169,9 @@ class TestStorageGroup:
|
|||
"""
|
||||
storage_group = put_storagegroup(wallet, cid, obj_list, bearer_token)
|
||||
verify_list_storage_group(wallet, cid, storage_group, bearer_token)
|
||||
verify_get_storage_group(wallet, cid, storage_group, obj_list, object_size, bearer_token)
|
||||
verify_get_storage_group(
|
||||
wallet, cid, storage_group, obj_list, object_size, shell, bearer_token
|
||||
)
|
||||
delete_storagegroup(wallet, cid, storage_group, bearer_token)
|
||||
|
||||
@staticmethod
|
||||
|
@ -180,20 +196,25 @@ class TestStorageGroup:
|
|||
@staticmethod
|
||||
@allure.step("Run Storage Group Operations On Other's Behalf In RO Container")
|
||||
def storagegroup_operations_by_other_ro_container(
|
||||
owner_wallet: str, other_wallet: str, cid: str, obj_list: list, object_size: int
|
||||
owner_wallet: str,
|
||||
other_wallet: str,
|
||||
cid: str,
|
||||
obj_list: list,
|
||||
object_size: int,
|
||||
shell: Shell,
|
||||
):
|
||||
storage_group = put_storagegroup(owner_wallet, cid, obj_list)
|
||||
with pytest.raises(Exception, match=OBJECT_ACCESS_DENIED):
|
||||
put_storagegroup(other_wallet, cid, obj_list)
|
||||
verify_list_storage_group(other_wallet, cid, storage_group)
|
||||
verify_get_storage_group(other_wallet, cid, storage_group, obj_list, object_size)
|
||||
verify_get_storage_group(other_wallet, cid, storage_group, obj_list, object_size, shell)
|
||||
with pytest.raises(Exception, match=OBJECT_ACCESS_DENIED):
|
||||
delete_storagegroup(other_wallet, cid, storage_group)
|
||||
|
||||
@staticmethod
|
||||
@allure.step("Run Storage Group Operations On Systems's Behalf In RO Container")
|
||||
def storagegroup_operations_by_system_ro_container(
|
||||
wallet: str, cid: str, obj_list: list, object_size: int
|
||||
wallet: str, cid: str, obj_list: list, object_size: int, shell: Shell
|
||||
):
|
||||
"""
|
||||
In this func we create a Storage Group on Inner Ring's key behalf
|
||||
|
@ -215,6 +236,7 @@ class TestStorageGroup:
|
|||
storage_group,
|
||||
obj_list,
|
||||
object_size,
|
||||
shell,
|
||||
wallet_config=IR_WALLET_CONFIG,
|
||||
)
|
||||
with pytest.raises(Exception, match=OBJECT_ACCESS_DENIED):
|
||||
|
|
|
@ -48,7 +48,10 @@ def hosting(configure_testlib) -> Hosting:
|
|||
|
||||
@pytest.fixture(scope="session")
|
||||
def require_multiple_hosts(hosting: Hosting):
|
||||
"""Fixture that is applied to tests that require that environment has multiple hosts."""
|
||||
"""Designates tests that require environment with multiple hosts.
|
||||
|
||||
These tests will be skipped on an environment that has only 1 host.
|
||||
"""
|
||||
if len(hosting.hosts) <= 1:
|
||||
pytest.skip("Test only works with multiple hosts")
|
||||
yield
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
"""
|
||||
This module contains keywords for work with Storage Groups.
|
||||
It contains wrappers for `neofs-cli storagegroup` verbs.
|
||||
|
@ -10,6 +8,7 @@ import allure
|
|||
from cli_helpers import _cmd_run
|
||||
from common import COMPLEX_OBJ_SIZE, NEOFS_CLI_EXEC, NEOFS_ENDPOINT, SIMPLE_OBJ_SIZE, WALLET_CONFIG
|
||||
from complex_object_actions import get_link_object
|
||||
from neofs_testlib.shell import Shell
|
||||
from neofs_verbs import head_object
|
||||
|
||||
logger = logging.getLogger("NeoLogger")
|
||||
|
@ -174,6 +173,7 @@ def verify_get_storage_group(
|
|||
storagegroup: str,
|
||||
obj_list: list,
|
||||
object_size: int,
|
||||
shell: Shell,
|
||||
bearer: str = None,
|
||||
wallet_config: str = WALLET_CONFIG,
|
||||
):
|
||||
|
@ -181,7 +181,7 @@ def verify_get_storage_group(
|
|||
if object_size == COMPLEX_OBJ_SIZE:
|
||||
for obj in obj_list:
|
||||
link_oid = get_link_object(
|
||||
wallet, cid, obj, bearer_token=bearer, wallet_config=wallet_config
|
||||
wallet, cid, obj, shell=shell, bearer_token=bearer, wallet_config=wallet_config
|
||||
)
|
||||
obj_head = head_object(
|
||||
wallet,
|
||||
|
|
Loading…
Reference in a new issue