Skip to content

Commit f34b7a6

Browse files
Copilotxadupre
andauthored
Refine waterfall validation and test assertions
Agent-Logs-Url: https://github.com/sdpython/teachpyx/sessions/e6e8e7c7-c0a1-47b3-9763-5ebb04affcb9 Co-authored-by: xadupre <22452781+xadupre@users.noreply.github.com>
1 parent eb76c60 commit f34b7a6

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

_unittests/ut_tools/test_pandas.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,18 @@ def test_plot_waterfall(self):
3030

3131
def test_plot_waterfall_missing_column(self):
3232
df = pandas.DataFrame({"name": ["A"], "delta": [1]})
33-
self.assertRaise(lambda: plot_waterfall(df, "missing", "name"), ValueError)
33+
with self.assertRaises(ValueError):
34+
plot_waterfall(df, "missing", "name")
3435

3536
def test_plot_waterfall_missing_label_column(self):
3637
df = pandas.DataFrame({"name": ["A"], "delta": [1]})
37-
self.assertRaise(lambda: plot_waterfall(df, "delta", "missing"), ValueError)
38+
with self.assertRaises(ValueError):
39+
plot_waterfall(df, "delta", "missing")
3840

3941
def test_plot_waterfall_bad_colors(self):
4042
df = pandas.DataFrame({"name": ["A"], "delta": [1]})
41-
self.assertRaise(
42-
lambda: plot_waterfall(df, "delta", "name", colors=("r",)),
43-
ValueError,
44-
)
43+
with self.assertRaises(ValueError):
44+
plot_waterfall(df, "delta", "name", colors=("r",))
4545

4646

4747
if __name__ == "__main__":

teachpyx/tools/pandas.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,12 @@ def plot_waterfall(
7777
if len(colors) != 3:
7878
raise ValueError(f"colors must contain 3 values, not {len(colors)}.")
7979

80-
values = pandas.to_numeric(data[value_column], errors="raise").astype(float)
80+
try:
81+
values = pandas.to_numeric(data[value_column], errors="raise").astype(float)
82+
except ValueError as exc:
83+
raise ValueError(
84+
f"Column {value_column!r} cannot be converted to numeric values."
85+
) from exc
8186
labels = data[label_column] if label_column is not None else data.index
8287
labels = labels.astype(str)
8388

0 commit comments

Comments
 (0)