Skip to content

Commit e9d3b78

Browse files
committed
improve and fix error display
1 parent 946624b commit e9d3b78

File tree

2 files changed

+14
-15
lines changed

2 files changed

+14
-15
lines changed

packages/pytest-simcore/src/pytest_simcore/helpers/logging_tools.py

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def _resolve(val: str | Callable[[], str], context: str) -> str:
5151
UserWarning,
5252
stacklevel=3,
5353
)
54-
return f"[{context} message generation failed]"
54+
return f"❌❌❌ [{context} message generation failed TIP: Check how the {context} message is generated!] ❌❌❌"
5555

5656

5757
class DynamicIndentFormatter(logging.Formatter):
@@ -104,7 +104,7 @@ def setup(cls, logger: logging.Logger) -> None:
104104
_STARTING_SUFFIX = " ⏳"
105105
_DONE_PREFIX = "<-- "
106106
_DONE_SUFFIX = " ✅"
107-
_RAISED_PREFIX = "❌❌❌ Error "
107+
_RAISED_PREFIX = "❌❌❌ Error: "
108108
_RAISED_SUFFIX = " ❌❌❌"
109109

110110

@@ -115,11 +115,15 @@ class ContextMessages:
115115
raised: str | Callable[[], str] = field(default="")
116116

117117
def __post_init__(self):
118+
# Store original callables before processing
119+
original_starting = self.starting
120+
original_done = self.done
121+
original_raised = self.raised
122+
118123
# Apply formatting to starting message
119124
if isinstance(self.starting, str):
120125
self.starting = f"{_STARTING_PREFIX}{self.starting}{_STARTING_SUFFIX}"
121126
else:
122-
original_starting = self.starting
123127
self.starting = (
124128
lambda: f"{_STARTING_PREFIX}{_resolve(original_starting, 'starting')}{_STARTING_SUFFIX}"
125129
)
@@ -128,26 +132,21 @@ def __post_init__(self):
128132
if isinstance(self.done, str):
129133
self.done = f"{_DONE_PREFIX}{self.done}{_DONE_SUFFIX}"
130134
else:
131-
original_done = self.done
132135
self.done = (
133136
lambda: f"{_DONE_PREFIX}{_resolve(original_done, 'done')}{_DONE_SUFFIX}"
134137
)
135138

136139
# Apply formatting to raised message or create default
137140
if not self.raised:
138-
if isinstance(self.done, str):
139-
# Extract base message from formatted done message
140-
base_msg = self.done.replace(_DONE_PREFIX, "").replace(_DONE_SUFFIX, "")
141-
self.raised = f"{_RAISED_PREFIX}{base_msg}{_RAISED_SUFFIX}"
141+
if isinstance(original_done, str):
142+
# Extract base message from original done message (before formatting)
143+
self.raised = f"{_RAISED_PREFIX}{original_done}{_RAISED_SUFFIX}"
142144
else:
143-
original_done = self.done
144-
self.raised = (
145-
lambda: f"{_RAISED_PREFIX}{_resolve(original_done, 'done')}{_RAISED_SUFFIX}"
146-
)
145+
# For callable done, create a simple error message
146+
self.raised = f"{_RAISED_PREFIX}operation failed{_RAISED_SUFFIX}"
147147
elif isinstance(self.raised, str):
148148
self.raised = f"{_RAISED_PREFIX}{self.raised}{_RAISED_SUFFIX}"
149149
else:
150-
original_raised = self.raised
151150
self.raised = (
152151
lambda: f"{_RAISED_PREFIX}{_resolve(original_raised, 'raised')}{_RAISED_SUFFIX}"
153152
)

packages/pytest-simcore/src/pytest_simcore/helpers/playwright.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ def wait_for_pipeline_state(
535535
msg=ContextMessages(
536536
starting=f"wait for one of {expected_states=}",
537537
done=lambda: f"wait for one of {expected_states=}, pipeline reached {current_state=}",
538-
raised=lambda: f"pipeline timed out with {current_state}. Expected one of {expected_states=}",
538+
raised=lambda: f"pipeline failed or timed out with {current_state}. Expected one of {expected_states=}",
539539
),
540540
):
541541
waiter = SocketIOProjectStateUpdatedWaiter(
@@ -552,7 +552,7 @@ def wait_for_pipeline_state(
552552
and current_state not in expected_states
553553
):
554554
pytest.fail(
555-
f"❌ Pipeline failed with state {current_state}. Expected one of {expected_states} ❌"
555+
f"❌ Pipeline failed fast with state {current_state}. Expected one of {expected_states} ❌"
556556
)
557557
return current_state
558558

0 commit comments

Comments
 (0)