diff --git a/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py b/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py index d4485e61..7724125d 100644 --- a/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py +++ b/pytest_tests/testsuites/acl/storage_group/test_storagegroup.py @@ -140,6 +140,7 @@ class TestStorageGroup: EACLRule(operation=op, access=EACLAccess.ALLOW, role=EACLRole.USER) for op in EACLOperation ], + shell=client_shell, ) self.expect_success_for_storagegroup_operations( self.main_wallet, cid, objects, object_size, client_shell, bearer_file @@ -174,9 +175,7 @@ class TestStorageGroup: """ storage_group = put_storagegroup(wallet, cid, obj_list, bearer) verify_list_storage_group(wallet, cid, storage_group, bearer) - verify_get_storage_group( - wallet, cid, storage_group, obj_list, object_size, shell, bearer - ) + verify_get_storage_group(wallet, cid, storage_group, obj_list, object_size, shell, bearer) delete_storagegroup(wallet, cid, storage_group, bearer) @staticmethod diff --git a/pytest_tests/testsuites/network/test_node_management.py b/pytest_tests/testsuites/network/test_node_management.py index 469ae4fb..a30b70ff 100644 --- a/pytest_tests/testsuites/network/test_node_management.py +++ b/pytest_tests/testsuites/network/test_node_management.py @@ -380,7 +380,7 @@ def test_replication(prepare_wallet_and_deposit, after_run_start_all_nodes, host @pytest.mark.node_mgmt @allure.title("NeoFS object could be dropped using control command") -def test_drop_object(prepare_wallet_and_deposit, hosting: Hosting): +def test_drop_object(prepare_wallet_and_deposit, client_shell: Shell, hosting: Hosting): """ Test checks object could be dropped using `neofs-cli control drop-objects` command. """ @@ -389,37 +389,42 @@ def test_drop_object(prepare_wallet_and_deposit, hosting: Hosting): locode = get_locode() rule = f"REP 1 CBF 1 SELECT 1 FROM * FILTER 'UN-LOCODE' EQ '{locode}' AS LOC" - cid = create_container(wallet, rule=rule) - oid_simple = put_object(wallet, file_path_simple, cid) - oid_complex = put_object(wallet, file_path_complex, cid) + cid = create_container(wallet, rule=rule, shell=client_shell) + oid_simple = put_object(wallet, file_path_simple, cid, shell=client_shell) + oid_complex = put_object(wallet, file_path_complex, cid, shell=client_shell) for oid in (oid_simple, oid_complex): - get_object(wallet, cid, oid) - head_object(wallet, cid, oid) + get_object(wallet, cid, oid, client_shell) + head_object(wallet, cid, oid, client_shell) - nodes = get_nodes_with_object(wallet, cid, oid_simple) + nodes = get_nodes_with_object(wallet, cid, oid_simple, shell=client_shell) node_name = choice( [name for name, config in NEOFS_NETMAP_DICT.items() if config.get("rpc") in nodes] ) for oid in (oid_simple, oid_complex): with allure.step(f"Drop object {oid}"): - get_object(wallet, cid, oid) - head_object(wallet, cid, oid) + get_object(wallet, cid, oid, shell=client_shell) + head_object(wallet, cid, oid, shell=client_shell) drop_object(hosting, node_name, cid, oid) - wait_for_obj_dropped(wallet, cid, oid, get_object) - wait_for_obj_dropped(wallet, cid, oid, head_object) + wait_for_obj_dropped(wallet, cid, oid, client_shell, get_object) + wait_for_obj_dropped(wallet, cid, oid, client_shell, head_object) @pytest.mark.node_mgmt @pytest.mark.skip(reason="Need to clarify scenario") @allure.title("Control Operations with storage nodes") -def test_shards(prepare_wallet_and_deposit, create_container_and_pick_node, hosting: Hosting): +def test_shards( + prepare_wallet_and_deposit, + create_container_and_pick_node, + client_shell: Shell, + hosting: Hosting, +): wallet = prepare_wallet_and_deposit file_path = generate_file() cid, node_name = create_container_and_pick_node - original_oid = put_object(wallet, file_path, cid) + original_oid = put_object(wallet, file_path, cid, shell=client_shell) # for mode in ('read-only', 'degraded'): for mode in ("degraded",): @@ -433,13 +438,12 @@ def test_shards(prepare_wallet_and_deposit, create_container_and_pick_node, host assert shards with pytest.raises(RuntimeError): - put_object(wallet, file_path, cid) + put_object(wallet, file_path, cid, shell=client_shell) with pytest.raises(RuntimeError): - delete_object(wallet, cid, original_oid) + delete_object(wallet, cid, original_oid, shell=client_shell) - # head_object(wallet, cid, original_oid) - get_object(wallet, cid, original_oid) + get_object(wallet, cid, original_oid, shell=client_shell) for shard in shards: node_shard_set_mode(hosting, node_name, shard, "read-write") @@ -447,8 +451,8 @@ def test_shards(prepare_wallet_and_deposit, create_container_and_pick_node, host shards = node_shard_list(hosting, node_name) assert shards - oid = put_object(wallet, file_path, cid) - delete_object(wallet, cid, oid) + oid = put_object(wallet, file_path, cid, shell=client_shell) + delete_object(wallet, cid, oid, shell=client_shell) @allure.step("Validate object has {expected_copies} copies") @@ -515,10 +519,10 @@ def wait_for_expected_object_copies( @allure.step("Wait for object to be dropped") -def wait_for_obj_dropped(wallet: str, cid: str, oid: str, checker) -> None: +def wait_for_obj_dropped(wallet: str, cid: str, oid: str, shell: Shell, checker) -> None: for _ in range(3): try: - checker(wallet, cid, oid) + checker(wallet, cid, oid, shell=shell) wait_for_gc_pass_on_storage_nodes() except Exception as err: if error_matches_status(err, OBJECT_NOT_FOUND): diff --git a/robot/resources/lib/python_keywords/storage_group.py b/robot/resources/lib/python_keywords/storage_group.py index 4e7d8bee..63acdd0c 100644 --- a/robot/resources/lib/python_keywords/storage_group.py +++ b/robot/resources/lib/python_keywords/storage_group.py @@ -49,9 +49,7 @@ def put_storagegroup( @allure.step("List Storagegroup") -def list_storagegroup( - wallet: str, cid: str, bearer: str = "", wallet_config: str = WALLET_CONFIG -): +def list_storagegroup(wallet: str, cid: str, bearer: str = "", wallet_config: str = WALLET_CONFIG): """ Wrapper for `neofs-cli storagegroup list`. This operation requires SEARCH allowed for `wallet` in `cid`. @@ -160,9 +158,7 @@ def verify_list_storage_group( bearer: str = None, wallet_config: str = WALLET_CONFIG, ): - storage_groups = list_storagegroup( - wallet, cid, bearer=bearer, wallet_config=wallet_config - ) + storage_groups = list_storagegroup(wallet, cid, bearer=bearer, wallet_config=wallet_config) assert storagegroup in storage_groups @@ -187,6 +183,7 @@ def verify_get_storage_group( wallet, cid, link_oid, + shell=shell, is_raw=True, bearer=bearer, wallet_config=wallet_config, diff --git a/robot/resources/lib/python_keywords/tombstone.py b/robot/resources/lib/python_keywords/tombstone.py index 53273b26..0f0ed64d 100644 --- a/robot/resources/lib/python_keywords/tombstone.py +++ b/robot/resources/lib/python_keywords/tombstone.py @@ -11,8 +11,8 @@ def verify_head_tombstone(wallet_path: str, cid: str, oid_ts: str, oid: str, she header = head_object(wallet_path, cid, oid_ts, shell=shell)["header"] assert header["containerID"] == cid, "Tombstone Header CID is wrong" - with open(wallet_path, "r") as fout: - wlt_data = json.loads(fout.read()) + with open(wallet_path, "r") as file: + wlt_data = json.loads(file.read()) wlt = wallet.Wallet.from_json(wlt_data, password="") addr = wlt.accounts[0].address