Add non-global Generate File in acl_basic_*

Signed-off-by: Elizaveta Chichindaeva <elizaveta@nspcc.ru>
This commit is contained in:
Elizaveta Chichindaeva 2022-05-19 14:10:00 +03:00
parent 2ea007164c
commit 3ea4578683
8 changed files with 40 additions and 35 deletions

View file

@ -3,14 +3,14 @@
import os import os
import tarfile import tarfile
import uuid import uuid
import hashlib
import docker import docker
from neo3 import wallet
from common import SIMPLE_OBJ_SIZE, ASSETS_DIR from common import SIMPLE_OBJ_SIZE, ASSETS_DIR
from cli_helpers import _cmd_run
from robot.api.deco import keyword from robot.api.deco import keyword
from robot.api import logger from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn from robot.libraries.BuiltIn import BuiltIn
from cli_helpers import _cmd_run
ROBOT_AUTO_KEYWORDS = False ROBOT_AUTO_KEYWORDS = False
@ -22,12 +22,32 @@ def generate_file_of_bytes(size: str) -> str:
:param size: the size in bytes, can be declared as 6e+6 for example :param size: the size in bytes, can be declared as 6e+6 for example
""" """
size = int(float(size)) size = int(float(size))
filename = f"{os.getcwd()}/{ASSETS_DIR}/{str(uuid.uuid4())}" filename = f"{os.getcwd()}/{ASSETS_DIR}/{uuid.uuid4()}"
with open(filename, 'wb') as fout: with open(filename, 'wb') as fout:
fout.write(os.urandom(size)) fout.write(os.urandom(size))
logger.info(f"file with size {size} bytes has been generated: {filename}") logger.info(f"file with size {size} bytes has been generated: {filename}")
return filename return filename
@keyword('Generate file')
def generate_file_and_file_hash(size: str) -> str:
"""
Function generates a big binary file with the specified size in bytes and its hash.
Args:
size (str): the size in bytes, can be declared as 6e+6 for example
Returns:
(str): the path to the generated file
(str): the hash of the generated file
"""
size = int(float(size))
filename = f"{os.getcwd()}/{ASSETS_DIR}/{str(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}")
file_hash = _get_file_hash(filename)
return filename, file_hash
@keyword('Get Docker Logs') @keyword('Get Docker Logs')
def get_container_logs(testcase_name: str) -> None: def get_container_logs(testcase_name: str) -> None:
client = docker.APIClient(base_url='unix://var/run/docker.sock') client = docker.APIClient(base_url='unix://var/run/docker.sock')
@ -80,5 +100,14 @@ def make_down(services: list=[]):
else: else:
cmd = 'make down; make clean' cmd = 'make down; make clean'
_cmd_run(cmd, timeout=60) _cmd_run(cmd, timeout=60)
os.chdir(test_path) 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()

View file

@ -1,7 +0,0 @@
*** Keywords ***
Generate file
[Arguments] ${SIZE}
${FILE_S_GEN} = Generate file of bytes ${SIZE}
${FILE_S_HASH_GEN} = Get file hash ${FILE_S_GEN}
[Return] ${FILE_S_GEN} ${FILE_S_HASH_GEN}

View file

@ -2,11 +2,9 @@
Variables common.py Variables common.py
Library container.py Library container.py
Library neofs.py
Library neofs_verbs.py Library neofs_verbs.py
Library payment_neogo.py Library utility_keywords.py
Resource common_steps_acl_basic.robot
Resource payment_operations.robot Resource payment_operations.robot
Resource setup_teardown.robot Resource setup_teardown.robot

View file

@ -2,16 +2,12 @@
Variables common.py Variables common.py
Library container.py Library container.py
Library neofs.py
Library neofs_verbs.py Library neofs_verbs.py
Library payment_neogo.py Library utility_keywords.py
Library storage_group.py
Library Collections
Resource payment_operations.robot Resource payment_operations.robot
Resource setup_teardown.robot Resource setup_teardown.robot
Resource storage_group.robot Resource storage_group.robot
Resource common_steps_acl_basic.robot
*** Test cases *** *** Test cases ***

View file

@ -2,11 +2,9 @@
Variables common.py Variables common.py
Library container.py Library container.py
Library neofs.py
Library neofs_verbs.py Library neofs_verbs.py
Library payment_neogo.py Library utility_keywords.py
Resource common_steps_acl_basic.robot
Resource payment_operations.robot Resource payment_operations.robot
Resource setup_teardown.robot Resource setup_teardown.robot

View file

@ -2,13 +2,9 @@
Variables common.py Variables common.py
Library container.py Library container.py
Library neofs.py
Library neofs_verbs.py Library neofs_verbs.py
Library payment_neogo.py Library utility_keywords.py
Library contract_keywords.py
Library storage_group.py
Resource common_steps_acl_basic.robot
Resource payment_operations.robot Resource payment_operations.robot
Resource setup_teardown.robot Resource setup_teardown.robot
Resource storage_group.robot Resource storage_group.robot
@ -52,4 +48,4 @@ Check Public Container
# System isn't allowed to DELETE in Public Container # System isn't allowed to DELETE in Public Container
Run Storage Group Operations On System's Behalf In RO Container Run Storage Group Operations On System's Behalf In RO Container
... ${PUBLIC_CID} ${OBJECTS} ${RUN_TYPE} ... ${PUBLIC_CID} ${OBJECTS} ${RUN_TYPE}

View file

@ -2,11 +2,9 @@
Variables common.py Variables common.py
Library container.py Library container.py
Library neofs.py
Library neofs_verbs.py Library neofs_verbs.py
Library payment_neogo.py Library utility_keywords.py
Resource common_steps_acl_basic.robot
Resource payment_operations.robot Resource payment_operations.robot
Resource setup_teardown.robot Resource setup_teardown.robot

View file

@ -2,12 +2,9 @@
Variables common.py Variables common.py
Library container.py Library container.py
Library neofs.py
Library neofs_verbs.py Library neofs_verbs.py
Library payment_neogo.py Library utility_keywords.py
Library storage_group.py
Resource common_steps_acl_basic.robot
Resource payment_operations.robot Resource payment_operations.robot
Resource setup_teardown.robot Resource setup_teardown.robot
Resource storage_group.robot Resource storage_group.robot