15e72b8407
CI / lint (push) Successful in 54s
CI / quality (push) Successful in 1m10s
CI / benchmark-publish (push) Has started running
CI / build (push) Successful in 54s
CI / security (push) Successful in 1m37s
CI / typecheck (push) Successful in 1m42s
CI / benchmark-regression (push) Has been skipped
CI / push-validation (push) Successful in 35s
CI / helm (push) Successful in 38s
CI / e2e_tests (push) Successful in 4m12s
CI / integration_tests (push) Successful in 6m23s
CI / unit_tests (push) Successful in 8m53s
CI / docker (push) Successful in 1m38s
CI / coverage (push) Successful in 12m12s
CI / status-check (push) Successful in 3s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Failing after 1m31s
CI / helm (pull_request) Successful in 44s
CI / coverage (pull_request) Successful in 11m7s
CI / push-validation (pull_request) Successful in 47s
CI / lint (pull_request) Successful in 1m37s
CI / build (pull_request) Successful in 1m0s
CI / quality (pull_request) Successful in 1m42s
CI / typecheck (pull_request) Successful in 1m49s
CI / security (pull_request) Successful in 2m8s
CI / integration_tests (pull_request) Successful in 4m17s
CI / e2e_tests (pull_request) Successful in 4m23s
CI / unit_tests (pull_request) Successful in 8m56s
CI / docker (pull_request) Successful in 1m54s
CI / status-check (pull_request) Successful in 3s
Add exc_info=True to the _logger.warning() call in the per-handler exception block of ReactiveEventBus.emit(). The handler already logged error=str(exc) (the exception message text), but omitted the traceback. With exc_info=True structlog now forwards the full traceback to the configured log output, giving developers the diagnostic detail needed to debug subscriber failures in production. Remove the @tdd_expected_fail tag from the traceback scenario in features/tdd_event_bus_exception_swallow.feature so that both TDD scenarios (#988) run as normal regression guards. Fix TDD tags in robot/tdd_e2e_implicit_init.robot: replace incorrect tdd_bug/tdd_bug_1023 tags with the canonical tdd_issue/tdd_issue_1023/ tdd_expected_fail tags so the tdd_expected_fail_listener properly inverts results while bug #1023 remains open. ISSUES CLOSED: #988
32 lines
1.6 KiB
Gherkin
32 lines
1.6 KiB
Gherkin
@tdd_issue @tdd_issue_988
|
|
Feature: TDD Issue #988 — ReactiveEventBus.emit() swallows exception details
|
|
As a developer debugging a subscriber failure
|
|
I want the exception handler in ReactiveEventBus.emit() to log the full
|
|
exception message and traceback
|
|
So that I can diagnose why a subscriber failed without guessing
|
|
|
|
This test captures bug #988. The exception handler in
|
|
ReactiveEventBus.emit() currently logs only `type(exc).__name__`
|
|
(e.g. "ValueError") without `str(exc)` or `exc_info=True`. When a
|
|
subscriber raises, the log contains no diagnostic detail — no message,
|
|
no traceback, no clue about which input or state caused the failure.
|
|
|
|
The traceback scenario uses `@tdd_expected_fail` because that
|
|
assertion still FAILS while the bug exists. The tag inversion
|
|
mechanism causes CI to report that scenario as passed. Once the
|
|
fix for #988 is merged, the `@tdd_expected_fail` tag must be
|
|
removed so both scenarios run normally.
|
|
|
|
See CONTRIBUTING.md > Bug Fix Workflow > TDD Issue Test Tags.
|
|
|
|
@tdd_issue @tdd_issue_4367
|
|
Scenario: Bug #988 — emit() logs exception message when handler raises
|
|
Given a ReactiveEventBus with a handler that raises a ValueError
|
|
When I emit an event that triggers the failing handler
|
|
Then the warning log should contain the exception message text
|
|
|
|
Scenario: Bug #988 — emit() logs traceback via exc_info when handler raises
|
|
Given a ReactiveEventBus with a handler that raises a ValueError
|
|
When I emit an event that triggers the failing handler
|
|
Then the warning log should contain traceback information
|