fix: refactor disperse_data and get_data_range

- make check log errors optional
This commit is contained in:
Roman 2025-03-12 05:11:20 +00:00
parent f95f57a7ce
commit 463875f7bf
No known key found for this signature in database
GPG Key ID: BB3828275C58EFF1
4 changed files with 28 additions and 9 deletions

View File

@ -14,6 +14,11 @@ pre-commit install
(optional) Overwrite default vars from src/env_vars.py via env vars or by adding a .env file
pytest
```
Set optional environment variable to search logs for errors after each tests:
```shell
export CHECK_LOG_ERRORS=True
```
## License

View File

@ -40,3 +40,4 @@ IP_RANGE = get_env_var("IP_RANGE", "172.19.0.0/24")
GATEWAY = get_env_var("GATEWAY", "172.19.0.1")
RUNNING_IN_CI = get_env_var("CI")
API_REQUEST_TIMEOUT = get_env_var("API_REQUEST_TIMEOUT", 20)
CHECK_LOG_ERRORS = get_env_var("CHECK_LOG_ERRORS", False)

View File

@ -45,15 +45,21 @@ class StepsDataAvailability(StepsCommon):
return executor
@allure.step
def disperse_data(self, data, app_id, index, client_node=None, timeout_duration=65, utf8=True, padding=True, send_invalid=False):
def disperse_data(self, data, app_id, index, client_node=None, **kwargs):
timeout_duration = kwargs.get("timeout_duration", 65)
utf8 = kwargs.get("utf8", True)
padding = kwargs.get("padding", True)
send_invalid = kwargs.get("send_invalid", False)
request = prepare_dispersal_request(data, app_id, index, utf8=utf8, padding=padding)
@retry(stop=stop_after_delay(timeout_duration), wait=wait_fixed(0.1), reraise=True)
def disperse(my_self=self):
response = []
request = prepare_dispersal_request(data, app_id, index, utf8=utf8, padding=padding)
executor = my_self.find_executor_node()
try:
if client_node is None:
executor = my_self.find_executor_node()
response = executor.send_dispersal_request(request)
else:
response = client_node.send_dispersal_request(request, send_invalid=send_invalid)
@ -67,11 +73,16 @@ class StepsDataAvailability(StepsCommon):
return disperse()
@allure.step
def get_data_range(self, node, app_id, start, end, client_node=None, timeout_duration=45, send_invalid=False):
def get_data_range(self, node, app_id, start, end, client_node=None, **kwargs):
timeout_duration = kwargs.get("timeout_duration", 65)
send_invalid = kwargs.get("send_invalid", False)
query = prepare_get_range_request(app_id, start, end)
@retry(stop=stop_after_delay(timeout_duration), wait=wait_fixed(0.1), reraise=True)
def get_range():
response = []
query = prepare_get_range_request(app_id, start, end)
try:
if client_node is None:
response = node.send_get_data_range_request(query)

View File

@ -3,6 +3,7 @@ import inspect
import glob
from concurrent.futures import ThreadPoolExecutor, as_completed
from src.env_vars import CHECK_LOG_ERRORS
from src.libs.custom_logger import get_custom_logger
import os
import pytest
@ -99,6 +100,7 @@ def close_open_nodes(attach_logs_on_fail):
@pytest.fixture(scope="function", autouse=True)
def check_nomos_log_errors(request):
yield
logger.debug(f"Running fixture teardown: {inspect.currentframe().f_code.co_name}")
for node in DS.nomos_nodes:
node.check_nomos_log_errors()
if CHECK_LOG_ERRORS.lower() == "true" or CHECK_LOG_ERRORS.lower() == "yes":
logger.debug(f"Running fixture teardown: {inspect.currentframe().f_code.co_name}")
for node in DS.nomos_nodes:
node.check_nomos_log_errors()