Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fix fail fast #409

Merged
merged 1 commit into from
Nov 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions src/pykiso/test_result/multi_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,27 @@ def _get_arguments_result_class(self, result_class, *args, **kwargs) -> List[Any

def __getattr__(self, name: str) -> Any:
"""Function implemented to get the attributes such as error, failures,
sucesses,expectedFailures.
successes,expectedFailures.

:param name: name of the attribute
"""
return getattr(self.result_classes[0], name)

def __setattr__(self, name: str, value: Any) -> Any:
"""Function implemented to set the attributes such as failfast
of all of the result classes

:param name: name of the attribute
"""
super().__setattr__(name, value)
# condition to avoid infinite loop with the __getattr__
if name != "result_classes":
for result in self.result_classes:
setattr(result, name, value)

@property
def error_occurred(self) -> Optional[bool]:
"""Return if an error occured for a BannerTestResult"""
"""Return if an error occurred for a BannerTestResult"""
for result in self.result_classes:
if hasattr(result, "error_occurred"):
return result.error_occurred
Expand Down Expand Up @@ -163,7 +175,7 @@ def addSubTest(
"""Call the addSubTest function for all result classes.

:param test: running testcase
:param subtest: subtest runned
:param subtest: subtest run
:param err: tuple returned by sys.exc_info
"""
for result in self.result_classes:
Expand Down
9 changes: 9 additions & 0 deletions tests/test_multi_result.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,15 @@ def test___getattr__(multi_result_instance_multiple_classes, test_mock, mocker):
assert multi_result_instance_multiple_classes.skipped == [(test_mock, reason)]


@pytest.mark.parametrize("failfast", [True, False])
def test___setattr__(multi_result_instance_multiple_classes, test_mock, failfast):

multi_result_instance_multiple_classes.failfast = failfast

for result in multi_result_instance_multiple_classes.result_classes:
assert result.failfast == failfast


@pytest.mark.parametrize(
"name_function,argument",
[
Expand Down
Loading