diff --git a/robot/resources/lib/python/neofs.py b/robot/resources/lib/python/neofs.py index 68871bb5..bdf66cdd 100644 --- a/robot/resources/lib/python/neofs.py +++ b/robot/resources/lib/python/neofs.py @@ -2,7 +2,6 @@ import base64 from datetime import datetime -import hashlib import json import os import re @@ -12,13 +11,13 @@ import docker import base58 from neo3 import wallet -from common import * +from common import (NEOFS_NETMAP, WALLET_PASS, NEOFS_ENDPOINT, +NEOFS_NETMAP_DICT, ASSETS_DIR) +from cli_helpers import _cmd_run +import json_transformers from robot.api.deco import keyword from robot.api import logger -from cli_helpers import _run_with_passwd, _cmd_run -import json_transformers - ROBOT_AUTO_KEYWORDS = False # path to neofs-cli executable @@ -36,9 +35,9 @@ def get_scripthash(wif: str): def stop_nodes(down_num: int, *nodes_list): # select nodes to stop from list - stop_nodes = random.sample(nodes_list, down_num) + nodes = random.sample(nodes_list, down_num) - for node in stop_nodes: + for node in nodes: m = re.search(r'(s\d+).', node) node = m.group(1) @@ -60,14 +59,13 @@ def start_nodes(*nodes_list): @keyword('Get nodes with object') def get_nodes_with_object(wallet: str, cid: str, oid: str): - copies = 0 nodes_list = [] for node in NEOFS_NETMAP: - search_res = _search_object(node, wallet, cid, oid) - if search_res: - if oid in search_res: + res = _search_object(node, wallet, cid, oid) + if res: + if oid in res: nodes_list.append(node) logger.info(f"Nodes with object: {nodes_list}") @@ -76,7 +74,6 @@ def get_nodes_with_object(wallet: str, cid: str, oid: str): @keyword('Get nodes without object') def get_nodes_without_object(wallet: str, cid: str, oid: str): - copies = 0 nodes_list = [] @@ -101,14 +98,14 @@ def validate_storage_policy_for_object(wallet: str, expected_copies: int, cid, o oid = oid.strip() for node in storage_nodes: - search_res = _search_object(node, wallet, cid, oid) - if search_res: - if oid in search_res: + res = _search_object(node, wallet, cid, oid) + if res: + if oid in res: copies += 1 found_nodes.append(node) if copies != expected_copies: - raise Exception(f"Object copies is not match storage policy.", + raise Exception("Object copies is not match storage policy." f"Found: {copies}, expected: {expected_copies}.") else: logger.info(f"Found copies: {copies}, expected: {expected_copies}") @@ -117,9 +114,11 @@ def validate_storage_policy_for_object(wallet: str, expected_copies: int, cid, o if expected_node_list: if sorted(found_nodes) == sorted(expected_node_list): - logger.info(f"Found node list '{found_nodes}' is equal for expected list '{expected_node_list}'") + logger.info(f"Found node list '{found_nodes}' " + f"is equal for expected list '{expected_node_list}'") else: - raise Exception(f"Found node list '{found_nodes}' is not equal to expected list '{expected_node_list}'") + raise Exception(f"Found node list '{found_nodes}' " + f"is not equal to expected list '{expected_node_list}'") @keyword('Verify Head Tombstone') @@ -135,48 +134,42 @@ def verify_head_tombstone(wallet: str, cid: str, oid_ts: str, oid: str, addr: st # Header verification header_cid = full_headers["header"]["containerID"]["value"] - if (json_transformers.json_reencode(header_cid) == cid): + if json_transformers.json_reencode(header_cid) == cid: logger.info(f"Header CID is expected: {cid} ({header_cid} in the output)") else: raise Exception("Header CID is not expected.") header_owner = full_headers["header"]["ownerID"]["value"] - if (json_transformers.json_reencode(header_owner) == addr): + if json_transformers.json_reencode(header_owner) == addr: logger.info(f"Header ownerID is expected: {addr} ({header_owner} in the output)") else: raise Exception("Header ownerID is not expected.") header_type = full_headers["header"]["objectType"] - if (header_type == "TOMBSTONE"): + if header_type == "TOMBSTONE": logger.info(f"Header Type is expected: {header_type}") else: raise Exception("Header Type is not expected.") header_session_type = full_headers["header"]["sessionToken"]["body"]["object"]["verb"] - if (header_session_type == "DELETE"): + if header_session_type == "DELETE": logger.info(f"Header Session Type is expected: {header_session_type}") else: raise Exception("Header Session Type is not expected.") header_session_cid = full_headers["header"]["sessionToken"]["body"]["object"]["address"]["containerID"]["value"] - if (json_transformers.json_reencode(header_session_cid) == cid): + if json_transformers.json_reencode(header_session_cid) == cid: logger.info(f"Header ownerID is expected: {addr} ({header_session_cid} in the output)") else: raise Exception("Header Session CID is not expected.") header_session_oid = full_headers["header"]["sessionToken"]["body"]["object"]["address"]["objectID"]["value"] - if (json_transformers.json_reencode(header_session_oid) == oid): + if json_transformers.json_reencode(header_session_oid) == oid: logger.info(f"Header Session OID (deleted object) is expected: {oid} ({header_session_oid} in the output)") else: raise Exception("Header Session OID (deleted object) is not expected.") -@keyword('Get file hash') -def get_file_hash(filename : str): - file_hash = _get_file_hash(filename) - return file_hash - - @keyword('Get control endpoint with wif') def get_control_endpoint_with_wif(endpoint_number: str = ''): if endpoint_number == '': @@ -232,7 +225,7 @@ def get_logs_latest_timestamp(): @keyword('Find in Nodes Log') -def find_in_nodes_Log(line: str, nodes_logs_time: dict): +def find_in_nodes_log(line: str, nodes_logs_time: dict): client_api = docker.APIClient() container_names = list() @@ -314,16 +307,6 @@ def sign_session_token(session_token: str, wallet: str, to_file: str=''): _cmd_run(cmd) -def _get_file_hash(filename): - blocksize = 65536 - hash = hashlib.md5() - with open(filename, "rb") as f: - for block in iter(lambda: f.read(blocksize), b""): - hash.update(block) - logger.info(f"Hash: {hash.hexdigest()}") - return hash.hexdigest() - - def _parse_oid(input_str: str): """ This function parses OID from given CLI output. The input string we @@ -348,9 +331,9 @@ def _parse_oid(input_str: str): def _search_object(node:str, wallet: str, cid:str, oid: str): - Cmd = ( + cmd = ( f'{NEOFS_CLI_EXEC} --rpc-endpoint {node} --wallet {wallet} --ttl 1 ' f'object search --root --cid {cid} --oid {oid} --config {WALLET_PASS}' ) - output = _cmd_run(Cmd) + output = _cmd_run(cmd) return output diff --git a/robot/resources/lib/python/utility_keywords.py b/robot/resources/lib/python/utility_keywords.py index da9fbd23..1602e1a7 100644 --- a/robot/resources/lib/python/utility_keywords.py +++ b/robot/resources/lib/python/utility_keywords.py @@ -15,19 +15,6 @@ from robot.libraries.BuiltIn import BuiltIn ROBOT_AUTO_KEYWORDS = False -@keyword('Generate file of bytes') -def generate_file_of_bytes(size: str) -> str: - """ - Function generates big binary file with the specified size in bytes. - :param size: the size in bytes, can be declared as 6e+6 for example - """ - size = int(float(size)) - filename = f"{os.getcwd()}/{ASSETS_DIR}/{uuid.uuid4()}" - with open(filename, 'wb') as fout: - fout.write(os.urandom(size)) - logger.info(f"file with size {size} bytes has been generated: {filename}") - return filename - @keyword('Generate file') def generate_file_and_file_hash(size: str) -> str: """ @@ -44,10 +31,29 @@ def generate_file_and_file_hash(size: str) -> str: fout.write(os.urandom(size)) logger.info(f"file with size {size} bytes has been generated: {filename}") - file_hash = _get_file_hash(filename) + file_hash = get_file_hash(filename) return filename, file_hash + +@keyword('Get File Hash') +def get_file_hash(filename: str): + """ + This function generates hash for the specified file. + Args: + filename (str): the path to the file to generate hash for + Returns: + (str): the hash of the file + """ + blocksize = 65536 + file_hash = hashlib.md5() + with open(filename, "rb") as out: + for block in iter(lambda: out.read(blocksize), b""): + file_hash.update(block) + logger.info(f"Hash: {file_hash.hexdigest()}") + return file_hash.hexdigest() + + @keyword('Get Docker Logs') def get_container_logs(testcase_name: str) -> None: client = docker.APIClient(base_url='unix://var/run/docker.sock') @@ -102,12 +108,3 @@ def make_down(services: list=[]): _cmd_run(cmd, timeout=60) os.chdir(test_path) - -def _get_file_hash(filename: str): - blocksize = 65536 - file_hash = hashlib.md5() - with open(filename, "rb") as out: - for block in iter(lambda: out.read(blocksize), b""): - file_hash.update(block) - logger.info(f"Hash: {file_hash.hexdigest()}") - return file_hash.hexdigest() diff --git a/robot/testsuites/integration/acl/object_attributes/creation_epoch_filter.robot b/robot/testsuites/integration/acl/object_attributes/creation_epoch_filter.robot index be540bd0..00bfa720 100644 --- a/robot/testsuites/integration/acl/object_attributes/creation_epoch_filter.robot +++ b/robot/testsuites/integration/acl/object_attributes/creation_epoch_filter.robot @@ -4,12 +4,9 @@ Variables eacl_object_filters.py Library acl.py Library container.py -Library neofs.py -Library Collections -Library contract_keywords.py +Library utility_keywords.py Resource common_steps_acl_extended.robot -Resource common_steps_acl_basic.robot Resource payment_operations.robot Resource setup_teardown.robot diff --git a/robot/testsuites/integration/acl/object_attributes/object_id_filter.robot b/robot/testsuites/integration/acl/object_attributes/object_id_filter.robot index eb449b9f..8ca16ebf 100644 --- a/robot/testsuites/integration/acl/object_attributes/object_id_filter.robot +++ b/robot/testsuites/integration/acl/object_attributes/object_id_filter.robot @@ -4,11 +4,9 @@ Variables eacl_object_filters.py Library acl.py Library container.py -Library neofs.py -Library Collections +Library utility_keywords.py Resource common_steps_acl_extended.robot -Resource common_steps_acl_basic.robot Resource payment_operations.robot Resource setup_teardown.robot diff --git a/robot/testsuites/integration/acl/object_attributes/payload_length_filter.robot b/robot/testsuites/integration/acl/object_attributes/payload_length_filter.robot index 6d43f559..bbcc1adc 100644 --- a/robot/testsuites/integration/acl/object_attributes/payload_length_filter.robot +++ b/robot/testsuites/integration/acl/object_attributes/payload_length_filter.robot @@ -4,11 +4,9 @@ Variables eacl_object_filters.py Library acl.py Library container.py -Library neofs.py -Library Collections +Library utility_keywords.py Resource common_steps_acl_extended.robot -Resource common_steps_acl_basic.robot Resource payment_operations.robot Resource setup_teardown.robot diff --git a/robot/testsuites/integration/acl/storage_group/bearer_allow_sg.robot b/robot/testsuites/integration/acl/storage_group/bearer_allow_sg.robot index 82dba2c4..e1ae7bfb 100644 --- a/robot/testsuites/integration/acl/storage_group/bearer_allow_sg.robot +++ b/robot/testsuites/integration/acl/storage_group/bearer_allow_sg.robot @@ -6,6 +6,7 @@ Library acl.py Library container.py Library neofs.py Library neofs_verbs.py +Library utility_keywords.py Resource common_steps_acl_bearer.robot Resource eacl_tables.robot diff --git a/robot/testsuites/integration/network/netmap_control_drop.robot b/robot/testsuites/integration/network/netmap_control_drop.robot index aa3a7e61..fe99a99d 100644 --- a/robot/testsuites/integration/network/netmap_control_drop.robot +++ b/robot/testsuites/integration/network/netmap_control_drop.robot @@ -3,13 +3,9 @@ Variables common.py Variables wellknown_acl.py Library container.py -Library contract_keywords.py Library neofs.py Library neofs_verbs.py -Library payment_neogo.py - -Library String -Library Process +Library utility_keywords.py Resource setup_teardown.robot Resource payment_operations.robot @@ -27,12 +23,12 @@ Drop command in control group ${WALLET_STORAGE} ${_} = Prepare Wallet with WIF And Deposit ${WIF_STORAGE} ${LOCODE} = Get Locode - ${FILE_SIMPLE} = Generate file of bytes ${SIMPLE_OBJ_SIZE} - ${FILE_COMPLEX} = Generate file of bytes ${COMPLEX_OBJ_SIZE} + ${FILE_SIMPLE} ${_} = Generate file ${SIMPLE_OBJ_SIZE} + ${FILE_COMPLEX} ${_} = Generate file ${COMPLEX_OBJ_SIZE} ${WALLET} ${_} ${_} = Prepare Wallet And Deposit - ${PRIV_CID} = Create container ${WALLET} basic_acl=${PRIVATE_ACL_F} + ${PRIV_CID} = Create Container ${WALLET} ... rule=REP 1 CBF 1 SELECT 1 FROM * FILTER 'UN-LOCODE' EQ '${LOCODE}' AS LOC ######################### diff --git a/robot/testsuites/integration/network/netmap_simple.robot b/robot/testsuites/integration/network/netmap_simple.robot index ceb72239..02828f78 100644 --- a/robot/testsuites/integration/network/netmap_simple.robot +++ b/robot/testsuites/integration/network/netmap_simple.robot @@ -4,9 +4,7 @@ Variables common.py Library container.py Library neofs.py Library neofs_verbs.py -Library payment_neogo.py -Library wallet_keywords.py -Library rpc_call_keywords.py +Library utility_keywords.py Resource payment_operations.robot Resource setup_teardown.robot @@ -23,7 +21,7 @@ NeoFS Simple Netmap [Setup] Setup ${WALLET} ${_} ${_} = Prepare Wallet And Deposit - ${FILE} = Generate file of bytes ${SIMPLE_OBJ_SIZE} + ${FILE} ${_} = Generate file ${SIMPLE_OBJ_SIZE} Validate Policy ${WALLET} ${FILE} REP 2 IN X CBF 2 SELECT 2 FROM * AS X 2 @{EMPTY} diff --git a/robot/testsuites/integration/network/replication.robot b/robot/testsuites/integration/network/replication.robot index 154f0aa5..9a2616e0 100644 --- a/robot/testsuites/integration/network/replication.robot +++ b/robot/testsuites/integration/network/replication.robot @@ -3,12 +3,10 @@ Variables common.py Variables wellknown_acl.py Library container.py -Library payment_neogo.py Library neofs.py Library neofs_verbs.py -Library wallet_keywords.py -Library rpc_call_keywords.py Library contract_keywords.py +Library utility_keywords.py Library Collections @@ -41,8 +39,7 @@ Check Replication ${WALLET} ${_} ${_} = Prepare Wallet And Deposit ${CID} = Create Container ${WALLET} basic_acl=${ACL} - ${FILE} = Generate file of bytes ${SIMPLE_OBJ_SIZE} - ${FILE_HASH} = Get file hash ${FILE} + ${FILE} ${_} = Generate file ${SIMPLE_OBJ_SIZE} ${S_OID} = Put Object ${WALLET} ${FILE} ${CID} Validate storage policy for object ${WALLET} ${EXPECTED_COPIES} ${CID} ${S_OID} diff --git a/robot/testsuites/integration/object/object_attributes.robot b/robot/testsuites/integration/object/object_attributes.robot index 2e390bac..e21d0f1f 100644 --- a/robot/testsuites/integration/object/object_attributes.robot +++ b/robot/testsuites/integration/object/object_attributes.robot @@ -3,10 +3,8 @@ Variables common.py Variables wellknown_acl.py Library container.py -Library neofs.py Library neofs_verbs.py -Library payment_neogo.py -Library String +Library utility_keywords.py Library Collections Resource setup_teardown.robot @@ -30,7 +28,7 @@ Duplicated Object Attributes ${WALLET} ${_} ${_} = Prepare Wallet And Deposit ${PUBLIC_CID} = Create Container ${WALLET} basic_acl=${PUBLIC_ACL_F} - ${FILE_S} = Generate file of bytes ${SIMPLE_OBJ_SIZE} + ${FILE_S} ${_} = Generate File ${SIMPLE_OBJ_SIZE} ################################################### diff --git a/robot/testsuites/integration/object/object_complex.robot b/robot/testsuites/integration/object/object_complex.robot index 4ae2d29c..3b9ea98d 100644 --- a/robot/testsuites/integration/object/object_complex.robot +++ b/robot/testsuites/integration/object/object_complex.robot @@ -4,9 +4,9 @@ Variables common.py Library neofs_verbs.py Library complex_object_actions.py Library neofs.py -Library payment_neogo.py Library contract_keywords.py Library Collections +Library utility_keywords.py Resource common_steps_object.robot Resource setup_teardown.robot @@ -30,8 +30,7 @@ NeoFS Complex Object Operations ${WALLET} ${ADDR} ${WIF} = Prepare Wallet And Deposit ${CID} = Prepare container ${WIF} ${WALLET} - ${FILE} = Generate file of bytes ${COMPLEX_OBJ_SIZE} - ${FILE_HASH} = Get file hash ${FILE} + ${FILE} ${FILE_HASH} = Generate file ${COMPLEX_OBJ_SIZE} ${S_OID} = Put object ${WALLET} ${FILE} ${CID} ${H_OID} = Put object ${WALLET} ${FILE} ${CID} user_headers=${FILE_USR_HEADER} diff --git a/robot/testsuites/integration/object/object_expiration.robot b/robot/testsuites/integration/object/object_expiration.robot index f6de4c8a..9e2dad86 100644 --- a/robot/testsuites/integration/object/object_expiration.robot +++ b/robot/testsuites/integration/object/object_expiration.robot @@ -1,10 +1,9 @@ *** Settings *** Variables common.py -Library neofs.py Library neofs_verbs.py -Library payment_neogo.py Library contract_keywords.py +Library utility_keywords.py Resource common_steps_object.robot Resource setup_teardown.robot @@ -24,9 +23,7 @@ NeoFS Simple Object Operations ${WALLET} ${_} ${WIF} = Prepare Wallet And Deposit ${CID} = Prepare container ${WIF} ${WALLET} - ${FILE} = Generate file of bytes ${SIMPLE_OBJ_SIZE} - ${FILE_HASH} = Get file hash ${FILE} - + ${FILE} ${FILE_HASH} = Generate File ${SIMPLE_OBJ_SIZE} ${EPOCH} = Get Epoch ${EPOCH_PRE} = Evaluate ${EPOCH}-1 diff --git a/robot/testsuites/integration/object/object_simple.robot b/robot/testsuites/integration/object/object_simple.robot index 40b75b49..f20b0313 100644 --- a/robot/testsuites/integration/object/object_simple.robot +++ b/robot/testsuites/integration/object/object_simple.robot @@ -3,9 +3,9 @@ Variables common.py Library neofs.py Library neofs_verbs.py -Library payment_neogo.py Library contract_keywords.py Library Collections +Library utility_keywords.py Resource common_steps_object.robot Resource payment_operations.robot @@ -28,9 +28,7 @@ NeoFS Simple Object Operations ${WALLET} ${ADDR} ${WIF} = Prepare Wallet And Deposit ${CID} = Prepare container ${WIF} ${WALLET} - ${FILE} = Generate file of bytes ${SIMPLE_OBJ_SIZE} - ${FILE_HASH} = Get file hash ${FILE} - + ${FILE} ${FILE_HASH} = Generate file ${SIMPLE_OBJ_SIZE} ${S_OID} = Put object ${WALLET} ${FILE} ${CID} ${H_OID} = Put object ${WALLET} ${FILE} ${CID} user_headers=${FILE_USR_HEADER} diff --git a/robot/testsuites/integration/object/storage_group/sg_of_complex_objects.robot b/robot/testsuites/integration/object/storage_group/sg_of_complex_objects.robot index c4a1765d..b719cdb8 100644 --- a/robot/testsuites/integration/object/storage_group/sg_of_complex_objects.robot +++ b/robot/testsuites/integration/object/storage_group/sg_of_complex_objects.robot @@ -5,6 +5,7 @@ Library neofs.py Library neofs_verbs.py Library storage_group.py Library Collections +Library utility_keywords.py Resource common_steps_object.robot Resource setup_teardown.robot @@ -25,7 +26,7 @@ NeoFS Complex Storagegroup ${WALLET} ${_} ${WIF} = Prepare Wallet And Deposit ${CID} = Prepare container ${WIF} ${WALLET} - ${FILE} = Generate file of bytes ${COMPLEX_OBJ_SIZE} + ${FILE} ${_} = Generate file ${COMPLEX_OBJ_SIZE} ${OID_1} = Put object ${WALLET} ${FILE} ${CID} ${OID_2} = Put object ${WALLET} ${FILE} ${CID} diff --git a/robot/testsuites/integration/object/storage_group/sg_of_simple_objects.robot b/robot/testsuites/integration/object/storage_group/sg_of_simple_objects.robot index 8f6c0bea..aed45668 100644 --- a/robot/testsuites/integration/object/storage_group/sg_of_simple_objects.robot +++ b/robot/testsuites/integration/object/storage_group/sg_of_simple_objects.robot @@ -1,10 +1,9 @@ *** Settings *** Variables common.py -Library neofs.py Library neofs_verbs.py -Library payment_neogo.py Library storage_group.py +Library utility_keywords.py Resource common_steps_object.robot Resource setup_teardown.robot @@ -25,7 +24,7 @@ NeoFS Simple Storagegroup ${WALLET} ${_} ${WIF} = Prepare Wallet And Deposit ${CID} = Prepare container ${WIF} ${WALLET} - ${FILE_S} = Generate file of bytes ${SIMPLE_OBJ_SIZE} + ${FILE_S} ${_} = Generate file ${SIMPLE_OBJ_SIZE} ${OID_1} = Put object ${WALLET} ${FILE_S} ${CID} ${OID_2} = Put object ${WALLET} ${FILE_S} ${CID} diff --git a/robot/testsuites/integration/services/http_gate.robot b/robot/testsuites/integration/services/http_gate.robot index f6e70392..54ad29c5 100644 --- a/robot/testsuites/integration/services/http_gate.robot +++ b/robot/testsuites/integration/services/http_gate.robot @@ -6,6 +6,7 @@ Library container.py Library neofs.py Library neofs_verbs.py Library http_gate.py +Library utility_keywords.py Resource payment_operations.robot Resource setup_teardown.robot @@ -24,11 +25,9 @@ NeoFS HTTP Gateway Make Up ${INCLUDE_SVC} ${WALLET} ${_} ${_} = Prepare Wallet And Deposit - ${CID} = Create container ${WALLET} rule=${PLACEMENT_RULE} basic_acl=${PUBLIC_ACL} - ${FILE} = Generate file of bytes ${SIMPLE_OBJ_SIZE} - ${FILE_L} = Generate file of bytes ${COMPLEX_OBJ_SIZE} - ${FILE_HASH} = Get file hash ${FILE} - ${FILE_L_HASH} = Get file hash ${FILE_L} + ${CID} = Create container ${WALLET} rule=${PLACEMENT_RULE} basic_acl=${PUBLIC_ACL} + ${FILE} ${HASH} = Generate file ${SIMPLE_OBJ_SIZE} + ${FILE_L} ${L_HASH} = Generate file ${COMPLEX_OBJ_SIZE} ${S_OID} = Put object ${WALLET} ${FILE} ${CID} ${L_OID} = Put object ${WALLET} ${FILE_L} ${CID} @@ -43,8 +42,8 @@ NeoFS HTTP Gateway ${PLAIN_FILE_HASH} = Get file hash ${GET_OBJ_S} ${GATE_FILE_HASH} = Get file hash ${FILEPATH} - Should Be Equal ${FILE_HASH} ${PLAIN_FILE_HASH} - Should Be Equal ${FILE_HASH} ${GATE_FILE_HASH} + Should Be Equal ${HASH} ${PLAIN_FILE_HASH} + Should Be Equal ${HASH} ${GATE_FILE_HASH} @{GET_NODE_LIST} = Get nodes without object ${WALLET} ${CID} ${L_OID} ${NODE} = Evaluate random.choice($GET_NODE_LIST) random @@ -54,7 +53,7 @@ NeoFS HTTP Gateway ${PLAIN_FILE_HASH} = Get file hash ${GET_OBJ_L} ${GATE_FILE_HASH} = Get file hash ${FILEPATH} - Should Be Equal ${FILE_L_HASH} ${PLAIN_FILE_HASH} - Should Be Equal ${FILE_L_HASH} ${GATE_FILE_HASH} + Should Be Equal ${L_HASH} ${PLAIN_FILE_HASH} + Should Be Equal ${L_HASH} ${GATE_FILE_HASH} [Teardown] Teardown http_gate diff --git a/robot/testsuites/integration/services/s3_gate_bucket.robot b/robot/testsuites/integration/services/s3_gate_bucket.robot index 7434a86c..78bb753d 100644 --- a/robot/testsuites/integration/services/s3_gate_bucket.robot +++ b/robot/testsuites/integration/services/s3_gate_bucket.robot @@ -7,6 +7,7 @@ Library OperatingSystem Library neofs.py Library s3_gate.py Library contract_keywords.py +Library utility_keywords.py Resource setup_teardown.robot Resource payment_operations.robot @@ -23,7 +24,7 @@ Buckets in NeoFS S3 Gateway Make Up ${INCLUDE_SVC} ${WALLET} ${_} ${WIF} = Prepare Wallet And Deposit - ${FILE_S3} = Generate file of bytes ${COMPLEX_OBJ_SIZE} + ${FILE_S3} ${_} = Generate file ${COMPLEX_OBJ_SIZE} ${_} ${S3_OBJECT_KEY} = Split Path ${FILE_S3} ${CID} diff --git a/robot/testsuites/integration/services/s3_gate_object.robot b/robot/testsuites/integration/services/s3_gate_object.robot index 62484b3c..d7e8f712 100644 --- a/robot/testsuites/integration/services/s3_gate_object.robot +++ b/robot/testsuites/integration/services/s3_gate_object.robot @@ -8,6 +8,7 @@ Library container.py Library neofs.py Library s3_gate.py Library contract_keywords.py +Library utility_keywords.py Resource payment_operations.robot Resource setup_teardown.robot @@ -26,8 +27,7 @@ Objects in NeoFS S3 Gateway ${WALLET} ${_} ${_} = Prepare Wallet And Deposit - ${FILE_S3} = Generate file of bytes ${COMPLEX_OBJ_SIZE} - ${FILE_S3_HASH} = Get file hash ${FILE_S3} + ${FILE_S3} ${FILE_S3_HASH} = Generate file ${COMPLEX_OBJ_SIZE} ${_} ${S3_OBJECT_KEY} = Split Path ${FILE_S3} ${CID}