Skip to content

Commit 55f8eab

Browse files
committed
improve messages
1 parent 6d668ef commit 55f8eab

File tree

1 file changed

+46
-7
lines changed

1 file changed

+46
-7
lines changed

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

Lines changed: 46 additions & 7 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] ❌ TIP: This needs to be a callable that returns a string without raising exceptions!!! Adjust code here! ❌"
54+
return f"❌ Error [{context} message generation failed]"
5555

5656

5757
class DynamicIndentFormatter(logging.Formatter):
@@ -99,19 +99,58 @@ def setup(cls, logger: logging.Logger) -> None:
9999
DynamicIndentFormatter.setup(test_logger)
100100

101101

102+
# Message formatting constants
103+
_STARTING_PREFIX = "--> "
104+
_STARTING_SUFFIX = " ⏳"
105+
_DONE_PREFIX = "<-- "
106+
_DONE_SUFFIX = " ✅"
107+
_RAISED_PREFIX = "❌❌❌ Error "
108+
_RAISED_SUFFIX = " ❌❌❌"
109+
110+
102111
@dataclass
103112
class ContextMessages:
104113
starting: str | Callable[[], str]
105114
done: str | Callable[[], str]
106115
raised: str | Callable[[], str] = field(default="")
107116

108117
def __post_init__(self):
118+
# Apply formatting to starting message
119+
if isinstance(self.starting, str):
120+
self.starting = f"{_STARTING_PREFIX}{self.starting}{_STARTING_SUFFIX}"
121+
else:
122+
original_starting = self.starting
123+
self.starting = (
124+
lambda: f"{_STARTING_PREFIX}{_resolve(original_starting, 'starting')}{_STARTING_SUFFIX}"
125+
)
126+
127+
# Apply formatting to done message
128+
if isinstance(self.done, str):
129+
self.done = f"{_DONE_PREFIX}{self.done}{_DONE_SUFFIX}"
130+
else:
131+
original_done = self.done
132+
self.done = (
133+
lambda: f"{_DONE_PREFIX}{_resolve(original_done, 'done')}{_DONE_SUFFIX}"
134+
)
135+
136+
# Apply formatting to raised message or create default
109137
if not self.raised:
110138
if isinstance(self.done, str):
111-
self.raised = f"{self.done} [with error]"
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}"
112142
else:
113-
# If done is a callable, create a callable for raised too
114-
self.raised = lambda: f"{_resolve(self.done, 'done')} [with error]"
143+
original_done = self.done
144+
self.raised = (
145+
lambda: f"{_RAISED_PREFIX}{_resolve(original_done, 'done')}{_RAISED_SUFFIX}"
146+
)
147+
elif isinstance(self.raised, str):
148+
self.raised = f"{_RAISED_PREFIX}{self.raised}{_RAISED_SUFFIX}"
149+
else:
150+
original_raised = self.raised
151+
self.raised = (
152+
lambda: f"{_RAISED_PREFIX}{_resolve(original_raised, 'raised')}{_RAISED_SUFFIX}"
153+
)
115154

116155

117156
LogLevelInt: TypeAlias = int
@@ -156,9 +195,9 @@ def log_context(
156195

157196
if isinstance(msg, str):
158197
ctx_msg = ContextMessages(
159-
starting=f"-> {msg} starting ...",
160-
done=f"<- {msg} done ",
161-
raised=f"{msg} raised!! ❌",
198+
starting=f"{msg}",
199+
done=f"{msg}",
200+
raised=f"{msg}",
162201
)
163202
elif isinstance(msg, tuple):
164203
ctx_msg = ContextMessages(*msg)

0 commit comments

Comments
 (0)