[#350] Cleanup utility keywords
Signed-off-by: Vladimir Domnich <v.domnich@yadro.com>
This commit is contained in:
parent
f9d1a4dfae
commit
0aeb998be9
17 changed files with 90 additions and 185 deletions
67
pytest_tests/helpers/file_helper.py
Normal file
67
pytest_tests/helpers/file_helper.py
Normal file
|
@ -0,0 +1,67 @@
|
|||
import hashlib
|
||||
import logging
|
||||
import os
|
||||
import uuid
|
||||
from typing import Optional
|
||||
|
||||
import allure
|
||||
from common import ASSETS_DIR, SIMPLE_OBJ_SIZE
|
||||
|
||||
logger = logging.getLogger("NeoLogger")
|
||||
|
||||
|
||||
def generate_file(size: int = SIMPLE_OBJ_SIZE) -> str:
|
||||
"""Generates a binary file with the specified size in bytes.
|
||||
|
||||
Args:
|
||||
size: Size in bytes, can be declared as 6e+6 for example.
|
||||
|
||||
Returns:
|
||||
The path to the generated file.
|
||||
"""
|
||||
file_path = f"{os.getcwd()}/{ASSETS_DIR}/{str(uuid.uuid4())}"
|
||||
with open(file_path, "wb") as file:
|
||||
file.write(os.urandom(size))
|
||||
logger.info(f"File with size {size} bytes has been generated: {file_path}")
|
||||
|
||||
return file_path
|
||||
|
||||
|
||||
@allure.step("Get File Hash")
|
||||
def get_file_hash(file_path: str, len: Optional[int] = None) -> str:
|
||||
"""Generates hash for the specified file.
|
||||
|
||||
Args:
|
||||
file_path: Path to the file to generate hash for.
|
||||
len: How many bytes to read.
|
||||
|
||||
Returns:
|
||||
Hash of the file as hex-encoded string.
|
||||
"""
|
||||
file_hash = hashlib.sha256()
|
||||
with open(file_path, "rb") as out:
|
||||
if len:
|
||||
file_hash.update(out.read(len))
|
||||
else:
|
||||
file_hash.update(out.read())
|
||||
return file_hash.hexdigest()
|
||||
|
||||
|
||||
@allure.step("Concatenation set of files to one file")
|
||||
def concat_files(file_paths: list, resulting_file_path: Optional[str] = None) -> str:
|
||||
"""Concatenates several files into a single file.
|
||||
|
||||
Args:
|
||||
file_paths: Paths to the files to concatenate.
|
||||
resulting_file_name: Path to the file where concatenated content should be stored.
|
||||
|
||||
Returns:
|
||||
Path to the resulting file.
|
||||
"""
|
||||
if not resulting_file_path:
|
||||
resulting_file_path = f"{os.getcwd()}/{ASSETS_DIR}/{str(uuid.uuid4())}"
|
||||
with open(resulting_file_path, "wb") as f:
|
||||
for file in file_paths:
|
||||
with open(file, "rb") as part_file:
|
||||
f.write(part_file.read())
|
||||
return resulting_file_path
|
Loading…
Add table
Add a link
Reference in a new issue