diff --git a/robot/resources/lib/python_keywords/epoch.py b/robot/resources/lib/python_keywords/epoch.py new file mode 100644 index 00000000..79240747 --- /dev/null +++ b/robot/resources/lib/python_keywords/epoch.py @@ -0,0 +1,31 @@ +#!/usr/bin/python3.9 + + +import contract +from robot.api import logger +from robot.api.deco import keyword +from robot.libraries.BuiltIn import BuiltIn + +IR_WALLET_PATH = BuiltIn().get_variable_value("${IR_WALLET_PATH}") +IR_WALLET_PASS = BuiltIn().get_variable_value("${IR_WALLET_PASS}") +SIDECHAIN_EP = BuiltIn().get_variable_value("${MORPH_ENDPOINT}") + + +@keyword('Get Epoch') +def get_epoch(): + epoch = int(contract.testinvoke_contract( + contract.get_netmap_contract_hash(SIDECHAIN_EP), + 'epoch', + SIDECHAIN_EP) + ) + logger.info(f"Got epoch {epoch}") + return epoch + + +@keyword('Tick Epoch') +def tick_epoch(): + cur_epoch = get_epoch() + return contract.invoke_contract_multisig( + contract.get_netmap_contract_hash(SIDECHAIN_EP), + f"newEpoch int:{cur_epoch+1}", + IR_WALLET_PATH, IR_WALLET_PASS, SIDECHAIN_EP) diff --git a/robot/resources/lib/python_keywords/payment_neogo.py b/robot/resources/lib/python_keywords/payment_neogo.py index 4f45c09a..889c9295 100644 --- a/robot/resources/lib/python_keywords/payment_neogo.py +++ b/robot/resources/lib/python_keywords/payment_neogo.py @@ -3,29 +3,26 @@ import re import time -from common import (MAINNET_WALLET_PATH, MORPH_ENDPOINT, - NEO_MAINNET_ENDPOINT, NEOFS_CONTRACT, MAINNET_SINGLE_ADDR) -import rpc_client import contract import converters -from wallet import nep17_transfer -from wrappers import run_sh_with_passwd_contract +import rpc_client +from common import (GAS_HASH, MAINNET_SINGLE_ADDR, MAINNET_WALLET_PATH, + MORPH_ENDPOINT, NEO_MAINNET_ENDPOINT, NEOFS_CONTRACT, + NEOGO_CLI_EXEC) from converters import load_wallet from neo3 import wallet - -from robot.api.deco import keyword from robot.api import logger -from robot.libraries.BuiltIn import BuiltIn - +from robot.api.deco import keyword +from wallet import nep17_transfer +from wrappers import run_sh_with_passwd_contract ROBOT_AUTO_KEYWORDS = False -MORPH_TOKEN_POWER = 12 EMPTY_PASSWORD = '' MAINNET_WALLET_PASS = 'one' -TX_PERSIST_TIMEOUT = 15 #seconds - -NEOGO_CLI_EXEC = BuiltIn().get_variable_value("${NEOGO_CLI_EXEC}") +TX_PERSIST_TIMEOUT = 15 # seconds +ASSET_POWER_MAINCHAIN = 10 ** 8 +ASSET_POWER_SIDECHAIN = 10 ** 12 morph_rpc_cli = rpc_client.RPCClient(MORPH_ENDPOINT) mainnet_rpc_cli = rpc_client.RPCClient(NEO_MAINNET_ENDPOINT) @@ -43,7 +40,8 @@ def withdraw_mainnet_gas(wlt: str, amount: int): ) logger.info(f"Executing command: {cmd}") - out = (run_sh_with_passwd_contract('', cmd, expect_confirmation=True)).decode('utf-8') + raw_out = run_sh_with_passwd_contract('', cmd, expect_confirmation=True) + out = raw_out.decode('utf-8') logger.info(f"Command completed with output: {out}") m = re.match(r'^Sent invocation transaction (\w{64})$', out) if m is None: @@ -90,20 +88,21 @@ def get_balance(wallet_path: str): ] try: resp = morph_rpc_cli.invoke_function( - contract.get_balance_contract_hash(MORPH_ENDPOINT), - 'balanceOf', - payload - ) + contract.get_balance_contract_hash(MORPH_ENDPOINT), + 'balanceOf', + payload + ) logger.info(f"Got response \n{resp}") value = int(resp['stack'][0]['value']) - return value / (10 ** MORPH_TOKEN_POWER) + return value / ASSET_POWER_SIDECHAIN except Exception as out: logger.error(f"failed to get wallet balance: {out}") raise out @keyword('Transfer Mainnet Gas') -def transfer_mainnet_gas(wallet_to: str, amount: int, wallet_password: str = EMPTY_PASSWORD): +def transfer_mainnet_gas(wallet_to: str, amount: int, + wallet_password: str = EMPTY_PASSWORD): ''' This function transfer GAS in main chain from mainnet wallet to the provided wallet. If the wallet contains more than one address, @@ -118,14 +117,17 @@ def transfer_mainnet_gas(wallet_to: str, amount: int, wallet_password: str = EMP ''' address_to = _address_from_wallet(wallet_to, wallet_password) - txid = nep17_transfer(MAINNET_WALLET_PATH, address_to, amount, NEO_MAINNET_ENDPOINT, - wallet_pass=MAINNET_WALLET_PASS, addr_from=MAINNET_SINGLE_ADDR) + txid = nep17_transfer(MAINNET_WALLET_PATH, address_to, amount, + NEO_MAINNET_ENDPOINT, + wallet_pass=MAINNET_WALLET_PASS, + addr_from=MAINNET_SINGLE_ADDR) if not transaction_accepted(txid): raise AssertionError(f"TX {txid} hasn't been processed") @keyword('NeoFS Deposit') -def neofs_deposit(wallet_to: str, amount: int, wallet_password: str = EMPTY_PASSWORD): +def neofs_deposit(wallet_to: str, amount: int, + wallet_password: str = EMPTY_PASSWORD): """ Transferring GAS from given wallet to NeoFS contract address. """ @@ -135,11 +137,13 @@ def neofs_deposit(wallet_to: str, amount: int, wallet_password: str = EMPTY_PASS address_to = _address_from_wallet(wallet_to, wallet_password) - txid = nep17_transfer(wallet_to, deposit_addr, amount, NEO_MAINNET_ENDPOINT, - wallet_pass=wallet_password, addr_from=address_to) + txid = nep17_transfer(wallet_to, deposit_addr, amount, + NEO_MAINNET_ENDPOINT, wallet_pass=wallet_password, + addr_from=address_to) if not transaction_accepted(txid): raise AssertionError(f"TX {txid} hasn't been processed") + def _address_from_wallet(wlt: str, wallet_password: str): """ Extracting the address from the given wallet. @@ -153,3 +157,23 @@ def _address_from_wallet(wlt: str, wallet_password: str): address = wallet_loaded.accounts[-1].address logger.info(f"got address: {address}") return address + + +@keyword('Get Mainnet Balance') +def get_mainnet_balance(address: str): + resp = mainnet_rpc_cli.get_nep17_balances(address=address) + logger.info(f"Got getnep17balances response: {resp}") + for balance in resp['balance']: + if balance['assethash'] == GAS_HASH: + return float(balance['amount'])/ASSET_POWER_MAINCHAIN + return float(0) + + +@keyword('Get Sidechain Balance') +def get_sidechain_balance(address: str): + resp = morph_rpc_cli.get_nep17_balances(address=address) + logger.info(f"Got getnep17balances response: {resp}") + for balance in resp['balance']: + if balance['assethash'] == GAS_HASH: + return float(balance['amount'])/ASSET_POWER_SIDECHAIN + return float(0) diff --git a/robot/resources/lib/python_keywords/utility_keywords.py b/robot/resources/lib/python_keywords/utility_keywords.py index 98ed16ae..3629dd4d 100644 --- a/robot/resources/lib/python_keywords/utility_keywords.py +++ b/robot/resources/lib/python_keywords/utility_keywords.py @@ -6,12 +6,13 @@ import tarfile import uuid import docker +import wallet +from common import ASSETS_DIR, SIMPLE_OBJ_SIZE from robot.api import logger from robot.api.deco import keyword from robot.libraries.BuiltIn import BuiltIn from cli_helpers import _cmd_run -from common import SIMPLE_OBJ_SIZE, ASSETS_DIR ROBOT_AUTO_KEYWORDS = False @@ -19,7 +20,8 @@ ROBOT_AUTO_KEYWORDS = False @keyword('Generate file') def generate_file_and_file_hash(size: int) -> str: """ - Function generates a big binary file with the specified size in bytes and its hash. + Function generates a big binary file with the specified size in bytes + and its hash. Args: size (int): the size in bytes, can be declared as 6e+6 for example Returns: @@ -51,6 +53,18 @@ def get_file_hash(filename: str): return file_hash.hexdigest() +@keyword('Generate Wallet') +def generate_wallet(): + return wallet.init_wallet_w_addr(ASSETS_DIR) + + +# TODO: should be deleted in the scope +# of https://github.com/nspcc-dev/neofs-testcases/issues/191 +@keyword('Init Wallet from WIF') +def init_wallet_from_wif(dir_path: str, wif: str): + return wallet.init_wallet_from_wif(dir_path, wif) + + @keyword('Get Docker Logs') def get_container_logs(testcase_name: str) -> None: client = docker.APIClient(base_url='unix://var/run/docker.sock') @@ -59,7 +73,8 @@ def get_container_logs(testcase_name: str) -> None: tar = tarfile.open(tar_name, "w:gz") for container in client.containers(): container_name = container['Names'][0][1:] - if client.inspect_container(container_name)['Config']['Domainname'] == "neofs.devenv": + if (client.inspect_container(container_name)['Config']['Domainname'] + == "neofs.devenv"): file_name = f"{logs_dir}/docker_log_{container_name}" with open(file_name, 'wb') as out: out.write(client.logs(container_name)) @@ -84,7 +99,10 @@ def make_up(services: list = [], config_dict: dict = {}): cmd = f'make up/{service}' _cmd_run(cmd) else: - cmd = f'make up/basic; make update.max_object_size val={SIMPLE_OBJ_SIZE}' + cmd = ( + f'make up/basic;' + f'make update.max_object_size val={SIMPLE_OBJ_SIZE}' + ) _cmd_run(cmd, timeout=120) os.chdir(test_path) diff --git a/robot/resources/lib/robot/payment_operations.robot b/robot/resources/lib/robot/payment_operations.robot index d056d7b5..affe0f99 100644 --- a/robot/resources/lib/robot/payment_operations.robot +++ b/robot/resources/lib/robot/payment_operations.robot @@ -1,8 +1,7 @@ *** Settings *** Variables common.py -Library wallet_keywords.py -Library rpc_call_keywords.py +Library utility_keywords.py Library payment_neogo.py @@ -13,7 +12,7 @@ Prepare Wallet And Deposit ${WALLET} ... ${ADDR} - ... ${WIF} = Init Wallet with Address ${ASSETS_DIR} + ... ${WIF} = Generate Wallet Transfer Mainnet Gas ${WALLET} ${DEPOSIT+1} NeoFS Deposit ${WALLET} ${DEPOSIT} # Now we have TX in main chain, but deposit might not propagate into the side chain yet. @@ -22,6 +21,7 @@ Prepare Wallet And Deposit [Return] ${WALLET} ${ADDR} ${WIF} +# TODO: should be deleted in the scope of https://github.com/nspcc-dev/neofs-testcases/issues/191 Prepare Wallet with WIF And Deposit [Arguments] ${WIF} ${DEPOSIT}=${30} diff --git a/robot/resources/lib/robot/verbs.robot b/robot/resources/lib/robot/verbs.robot index 870af631..6a626484 100644 --- a/robot/resources/lib/robot/verbs.robot +++ b/robot/resources/lib/robot/verbs.robot @@ -1,7 +1,7 @@ *** Settings *** Variables common.py -Library contract_keywords.py +Library epoch.py Library neofs.py Library neofs_verbs.py Library utility_keywords.py diff --git a/robot/testsuites/integration/acl/acl_extended_actions_pubkey.robot b/robot/testsuites/integration/acl/acl_extended_actions_pubkey.robot index fd77f4ae..7f75cba7 100644 --- a/robot/testsuites/integration/acl/acl_extended_actions_pubkey.robot +++ b/robot/testsuites/integration/acl/acl_extended_actions_pubkey.robot @@ -50,6 +50,7 @@ Check eACL Deny All Other and Allow All Pubkey ${D_OID_USER} = Put object ${USER_WALLET} ${FILE_S} ${CID} user_headers=${USER_HEADER_DEL} @{S_OBJ_H} = Create List ${S_OID_USER} + # TODO: should be deleted in the scope of https://github.com/nspcc-dev/neofs-testcases/issues/191 ${WALLET_EACL} ${_} = Prepare Wallet with WIF And Deposit ${EACL_KEY} Put object ${WALLET_EACL} ${FILE_S} ${CID} user_headers=${ANOTHER_HEADER} diff --git a/robot/testsuites/integration/acl/acl_extended_deny_replication.robot b/robot/testsuites/integration/acl/acl_extended_deny_replication.robot index b5c09a99..391b8913 100644 --- a/robot/testsuites/integration/acl/acl_extended_deny_replication.robot +++ b/robot/testsuites/integration/acl/acl_extended_deny_replication.robot @@ -3,7 +3,7 @@ Variables common.py Library acl.py Library container.py -Library contract_keywords.py +Library epoch.py Library neofs.py Library neofs_verbs.py Library storage_policy.py diff --git a/robot/testsuites/integration/acl/acl_extended_filters.robot b/robot/testsuites/integration/acl/acl_extended_filters.robot index 42cd8613..f64238f0 100644 --- a/robot/testsuites/integration/acl/acl_extended_filters.robot +++ b/robot/testsuites/integration/acl/acl_extended_filters.robot @@ -3,7 +3,6 @@ Variables common.py Library acl.py Library container.py -Library contract_keywords.py Library neofs.py Library neofs_verbs.py Library Collections @@ -24,7 +23,7 @@ ${CUSTOM_FILTER} = $Object:key1 Extended ACL Operations [Documentation] Testcase to validate NeoFS operations with extended ACL. [Tags] ACL eACL - [Timeout] 20 min + [Timeout] 2 min [Setup] Setup diff --git a/robot/testsuites/integration/cli/accounting/balance.robot b/robot/testsuites/integration/cli/accounting/balance.robot index 793bf245..61e397d1 100644 --- a/robot/testsuites/integration/cli/accounting/balance.robot +++ b/robot/testsuites/integration/cli/accounting/balance.robot @@ -4,8 +4,6 @@ Variables common.py Library Collections Library Process Library String -Library contract_keywords.py -Library cli_keywords.py Library utility_keywords.py Resource setup_teardown.robot @@ -17,7 +15,6 @@ ${DEPOSIT_AMOUNT} = ${10} *** Test cases *** CLI Accounting Balance Test [Documentation] neofs-cli accounting balance test - [Tags] NeoFSCLI Accounting [Timeout] 10 min [Setup] Setup @@ -35,10 +32,10 @@ CLI Accounting Balance Test Should Be Equal As Numbers ${OUTPUT.stdout} ${DEPOSIT_AMOUNT} # Getting balance with wallet and wrong address - ${_} ${ANOTHER_ADDR} ${_} = Init Wallet With Address ${ASSETS_DIR} + ${_} ${ANOTHER_ADDR} ${_} = Generate Wallet ${OUTPUT} = Run Process ${NEOFS_CLI_EXEC} accounting balance -r ${NEOFS_ENDPOINT} --address ${ANOTHER_ADDR} --wallet ${WALLET} --config ${WALLET_CONFIG} ... shell=True - Should Be Equal As Strings ${OUTPUT.stderr} --address option must be specified and valid + Should Contain ${OUTPUT.stderr} --address option must be specified and valid Should Be Equal As Numbers ${OUTPUT.rc} 1 # Getting balance with control API diff --git a/robot/testsuites/integration/cli/netmap/networkinfo_rpc_method.robot b/robot/testsuites/integration/cli/netmap/networkinfo_rpc_method.robot index 5d220039..289606f9 100644 --- a/robot/testsuites/integration/cli/netmap/networkinfo_rpc_method.robot +++ b/robot/testsuites/integration/cli/netmap/networkinfo_rpc_method.robot @@ -4,7 +4,7 @@ Variables common.py Library Collections Library Process Library String -Library contract_keywords.py +Library epoch.py Resource payment_operations.robot Resource setup_teardown.robot diff --git a/robot/testsuites/integration/container/container_delete.robot b/robot/testsuites/integration/container/container_delete.robot index 5334617d..71116119 100644 --- a/robot/testsuites/integration/container/container_delete.robot +++ b/robot/testsuites/integration/container/container_delete.robot @@ -2,40 +2,49 @@ Variables common.py Library container.py -Library wallet_keywords.py -Library contract_keywords.py Library Collections Resource setup_teardown.robot Resource payment_operations.robot +*** Variables *** +# The timeout during which the container should be deleted. The deletion after +# this time isn't guaranteed, but is expected as we run the test in an +# isolated environment. +${DELETE_TIMEOUT} = 30s + + *** Test Cases *** Delete Containers [Documentation] Testcase to check if containers can be deleted by its owner only. [Tags] Container - [Timeout] 2 min + [Timeout] 3 min [Setup] Setup - ${_} ${_} ${USER_KEY} = Prepare Wallet And Deposit - ${_} ${_} ${OTHER_KEY} = Prepare Wallet And Deposit + ${WALLET} + ... ${_} + ... ${_} = Prepare Wallet And Deposit + ${ANOTHER_WALLET} + ... ${_} + ... ${_} = Prepare Wallet And Deposit - ${CID} = Create container ${USER_KEY} + ${CID} = Create container ${WALLET} ################################################################ # No explicit error is expected upon container deletion attempt ################################################################ - Delete Container ${OTHER_KEY} ${CID} - Tick Epoch - @{CONTAINERS} = List Containers ${USER_KEY} + Delete Container ${ANOTHER_WALLET} ${CID} + Sleep ${DELETE_TIMEOUT} + @{CONTAINERS} = List Containers ${WALLET} List Should Contain Value ... ${CONTAINERS} ... ${CID} ... msg="A key which doesn't owe the container is able to delete ${CID}" - Delete Container ${USER_KEY} ${CID} - Tick Epoch - @{CONTAINERS} = List Containers ${USER_KEY} + Delete Container ${WALLET} ${CID} + Sleep ${DELETE_TIMEOUT} + @{CONTAINERS} = List Containers ${WALLET} List Should Not Contain Value ... ${CONTAINERS} ... ${CID} @@ -44,6 +53,6 @@ Delete Containers ################################################################################### # If one tries to delete an already deleted container, they should expect success. ################################################################################### - Delete Container ${USER_KEY} ${CID} + Delete Container ${WALLET} ${CID} [Teardown] Teardown container_delete diff --git a/robot/testsuites/integration/network/netmap_control.robot b/robot/testsuites/integration/network/netmap_control.robot index 2ab1bb20..03a05629 100644 --- a/robot/testsuites/integration/network/netmap_control.robot +++ b/robot/testsuites/integration/network/netmap_control.robot @@ -2,7 +2,7 @@ Variables common.py Library Process -Library contract_keywords.py +Library epoch.py Library neofs.py Library String Library acl.py @@ -26,7 +26,7 @@ Control Operations with storage nodes Should Be Equal As Integers ${HEALTHCHECK.rc} 0 Run Process ${NEOFS_CLI_EXEC} control set-status --endpoint ${NODE} --wallet ${STORAGE_WALLET} --config ${WALLET_CONFIG} --status 'offline' shell=True - + Sleep ${MAINNET_BLOCK_TIME} Tick Epoch @@ -36,19 +36,19 @@ Control Operations with storage nodes ${HEALTHCHECK_OFFLINE} = Run Process ${NEOFS_CLI_EXEC} control healthcheck --endpoint ${NODE} --wallet ${STORAGE_WALLET} --config ${WALLET_CONFIG} shell=True Should Be Equal As Integers ${HEALTHCHECK_OFFLINE.rc} 0 - Should Not Be Equal ${HEALTHCHECK.stdout} ${HEALTHCHECK_OFFLINE.stdout} - + Should Not Be Equal ${HEALTHCHECK.stdout} ${HEALTHCHECK_OFFLINE.stdout} + Run Process ${NEOFS_CLI_EXEC} control set-status --endpoint ${NODE} --wallet ${STORAGE_WALLET} --config ${WALLET_CONFIG} --status 'online' shell=True Sleep ${MAINNET_BLOCK_TIME} Tick Epoch ${SNAPSHOT_ONLINE} = Run Process ${NEOFS_CLI_EXEC} control netmap-snapshot --endpoint ${NODE} --wallet ${STORAGE_WALLET} --config ${WALLET_CONFIG} shell=True - ${NODE_NUM_ONLINE} = Get Regexp Matches ${SNAPSHOT_ONLINE.stdout} ${NODE_NUM} + ${NODE_NUM_ONLINE} = Get Regexp Matches ${SNAPSHOT_ONLINE.stdout} ${NODE_NUM} Should Be Equal ${NODE_NUM_ONLINE}[0] ${NODE_NUM} ${HEALTHCHECK_ONLINE} = Run Process ${NEOFS_CLI_EXEC} control healthcheck --endpoint ${NODE} --wallet ${STORAGE_WALLET} --config ${WALLET_CONFIG} shell=True Should Be Equal As Integers ${HEALTHCHECK_ONLINE.rc} 0 - Should Be Equal ${HEALTHCHECK.stdout} ${HEALTHCHECK_ONLINE.stdout} + Should Be Equal ${HEALTHCHECK.stdout} ${HEALTHCHECK_ONLINE.stdout} [Teardown] Teardown netmap_control diff --git a/robot/testsuites/integration/network/replication.robot b/robot/testsuites/integration/network/replication.robot index e1597c6f..b05e5ac0 100644 --- a/robot/testsuites/integration/network/replication.robot +++ b/robot/testsuites/integration/network/replication.robot @@ -3,7 +3,7 @@ Variables common.py Variables wellknown_acl.py Library container.py -Library contract_keywords.py +Library epoch.py Library neofs_verbs.py Library nodes_management.py Library storage_policy.py diff --git a/robot/testsuites/integration/object/object_complex.robot b/robot/testsuites/integration/object/object_complex.robot index aeda1648..b2a7ff67 100644 --- a/robot/testsuites/integration/object/object_complex.robot +++ b/robot/testsuites/integration/object/object_complex.robot @@ -4,7 +4,6 @@ Variables common.py Library container.py Library complex_object_actions.py -Library contract_keywords.py Library neofs_verbs.py Library neofs.py Library storage_policy.py diff --git a/robot/testsuites/integration/object/object_expiration.robot b/robot/testsuites/integration/object/object_expiration.robot index eb565c3e..0c0e5b8b 100644 --- a/robot/testsuites/integration/object/object_expiration.robot +++ b/robot/testsuites/integration/object/object_expiration.robot @@ -3,7 +3,7 @@ Variables common.py Library neofs_verbs.py Library container.py -Library contract_keywords.py +Library epoch.py Library utility_keywords.py Resource setup_teardown.robot diff --git a/robot/testsuites/integration/payment/emission_threshold.robot b/robot/testsuites/integration/payment/emission_threshold.robot index ff678b47..07728c03 100644 --- a/robot/testsuites/integration/payment/emission_threshold.robot +++ b/robot/testsuites/integration/payment/emission_threshold.robot @@ -2,8 +2,7 @@ Variables common.py Library payment_neogo.py -Library wallet_keywords.py -Library rpc_call_keywords.py +Library utility_keywords.py Library Process Resource setup_teardown.robot @@ -23,7 +22,7 @@ IR GAS emission threshold value [Setup] Setup - ${WALLET} ${ADDR} ${_} = Init Wallet with Address ${ASSETS_DIR} + ${WALLET} ${ADDR} ${_} = Generate Wallet ${SC_BALANCE} = Get Sidechain Balance ${ADDR} Transfer Mainnet Gas ${WALLET} ${DEPOSIT} diff --git a/robot/testsuites/integration/payment/withdraw.robot b/robot/testsuites/integration/payment/withdraw.robot index d60adae2..8a317cba 100644 --- a/robot/testsuites/integration/payment/withdraw.robot +++ b/robot/testsuites/integration/payment/withdraw.robot @@ -3,8 +3,7 @@ Variables common.py Library neofs.py Library payment_neogo.py -Library wallet_keywords.py -Library rpc_call_keywords.py +Library utility_keywords.py Resource setup_teardown.robot @@ -20,7 +19,7 @@ NeoFS Deposit and Withdraw [Setup] Setup - ${WALLET} ${ADDR} ${_} = Init Wallet with Address ${ASSETS_DIR} + ${WALLET} ${ADDR} ${_} = Generate Wallet ########################################################## # Transferring GAS from initial wallet to our test wallet diff --git a/robot/testsuites/integration/services/s3_gate_bucket.robot b/robot/testsuites/integration/services/s3_gate_bucket.robot index 04d5f270..23e1faf7 100644 --- a/robot/testsuites/integration/services/s3_gate_bucket.robot +++ b/robot/testsuites/integration/services/s3_gate_bucket.robot @@ -7,7 +7,7 @@ Library OperatingSystem Library neofs.py Library container.py Library s3_gate.py -Library contract_keywords.py +Library epoch.py Library utility_keywords.py Resource setup_teardown.robot diff --git a/robot/testsuites/integration/services/s3_gate_object.robot b/robot/testsuites/integration/services/s3_gate_object.robot index d7e8f712..b34ab294 100644 --- a/robot/testsuites/integration/services/s3_gate_object.robot +++ b/robot/testsuites/integration/services/s3_gate_object.robot @@ -7,7 +7,6 @@ Library OperatingSystem Library container.py Library neofs.py Library s3_gate.py -Library contract_keywords.py Library utility_keywords.py Resource payment_operations.robot