From e81ec3def5e12a54cd528b7b0aba5c4c8846fb01 Mon Sep 17 00:00:00 2001 From: Marvin Klerx Date: Thu, 20 Nov 2025 21:19:00 +0100 Subject: [PATCH 1/2] throw continuable failure for count table keyword --- src/Tables/keywords/getter.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Tables/keywords/getter.py b/src/Tables/keywords/getter.py index 56bdf1a..432b1e4 100644 --- a/src/Tables/keywords/getter.py +++ b/src/Tables/keywords/getter.py @@ -6,6 +6,7 @@ from assertionengine import AssertionOperator, verify_assertion from assertionengine.assertion_engine import EvaluationOperators, NumericalOperators from robot.api.deco import keyword +from robot.api.exceptions import ContinuableFailure from ..general.library_attributes import LibraryAttributes from ..utils.file_access import FileAccess @@ -403,9 +404,15 @@ def count_table( or assertion_operator in EvaluationOperators ): - verify_assertion(axis_count, assertion_operator, assertion_expected, message) + try: + verify_assertion(axis_count, assertion_operator, assertion_expected, message) + except AssertionError as e: + err = message if message else str(e) + raise ContinuableFailure(err) # noqa: B904 + except Exception: + raise else: raise ValueError( - f"Unexpected operator for assertion: {assertion_operator}. Use only {list(NumericalOperators)}." + f"Unexpected operator for assertion: {assertion_operator}. Use only {list(NumericalOperators)} or {list(EvaluationOperators)}." ) return axis_count From beafeac959af10cc09df7a4aae60e94b7c460563 Mon Sep 17 00:00:00 2001 From: Marvin Klerx Date: Thu, 20 Nov 2025 21:25:50 +0100 Subject: [PATCH 2/2] make continuable failure configurable with default value true --- src/Tables/keywords/getter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Tables/keywords/getter.py b/src/Tables/keywords/getter.py index 432b1e4..f9116c7 100644 --- a/src/Tables/keywords/getter.py +++ b/src/Tables/keywords/getter.py @@ -348,13 +348,14 @@ def get_table_row( return row_list @keyword(tags=["Getter"]) - def count_table( + def count_table( # noqa: PLR0913 self, path: Path | str, axis: Axis, assertion_operator: AssertionOperator | None = None, assertion_expected: Any = None, message: str = "", + continue_on_failure: bool = True, ) -> int: """ Keyword for counting rows or columns in the provided table. @@ -408,6 +409,8 @@ def count_table( verify_assertion(axis_count, assertion_operator, assertion_expected, message) except AssertionError as e: err = message if message else str(e) + if not continue_on_failure: + raise AssertionError(err) # noqa: B904 raise ContinuableFailure(err) # noqa: B904 except Exception: raise