diff --git a/README.md b/README.md index 410ba5a..09dad4e 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/src/env_vars.py b/src/env_vars.py index 75b705e..863c0a1 100644 --- a/src/env_vars.py +++ b/src/env_vars.py @@ -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) diff --git a/src/steps/da.py b/src/steps/da.py index 1e0ae23..cffe4a9 100644 --- a/src/steps/da.py +++ b/src/steps/da.py @@ -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) diff --git a/tests/conftest.py b/tests/conftest.py index abcc9b7..b28d45e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -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()