diff --git a/tests/end_to_end/test_scenarios.py b/tests/end_to_end/test_scenarios.py index ac952b3847..af55eda726 100644 --- a/tests/end_to_end/test_scenarios.py +++ b/tests/end_to_end/test_scenarios.py @@ -93,7 +93,7 @@ def _target_for(scenario_name: str) -> str: @pytest.mark.timeout(7200) # 2 hour timeout per scenario @pytest.mark.flaky(reruns=3, reruns_delay=90) @pytest.mark.parametrize("scenario_name", get_all_scenarios()) -def test_scenario_with_pyrit_scan(scenario_name): +def test_scenario_with_pyrit_scan(scenario_name: str, capsys: pytest.CaptureFixture[str]) -> None: """ Test each scenario runs successfully using pyrit_scan with its declared initializer list. @@ -103,28 +103,28 @@ def test_scenario_with_pyrit_scan(scenario_name): initializers = _initializers_for(scenario_name) extra_args = _extra_args_for(scenario_name) target = _target_for(scenario_name) - try: - result = pyrit_scan_main( - [ - scenario_name, - "--initializers", - *initializers, - "--target", - target, - "--config-file", - str(CONFIG_FILE), - "--request-timeout", - str(REQUEST_TIMEOUT_SECONDS), - "--max-dataset-size", - "1", - "--log-level", - "WARNING", - *extra_args, - ] - ) - - assert result == 0, f"Scenario '{scenario_name}' failed with exit code {result}" - - except Exception as e: - # Re-raise with scenario context while preserving full traceback - raise AssertionError(f"Scenario '{scenario_name}' raised an exception") from e + result = pyrit_scan_main( + [ + scenario_name, + "--initializers", + *initializers, + "--target", + target, + "--config-file", + str(CONFIG_FILE), + "--request-timeout", + str(REQUEST_TIMEOUT_SECONDS), + "--max-dataset-size", + "1", + "--log-level", + "WARNING", + *extra_args, + ] + ) + captured = capsys.readouterr() + + assert result == 0, ( + f"Scenario '{scenario_name}' failed with exit code {result}." + f"\n\npyrit_scan stdout:\n{captured.out.rstrip() or ''}" + f"\n\npyrit_scan stderr:\n{captured.err.rstrip() or ''}" + )