Skip to content

Commit 4cdd770

Browse files
committed
Improve error handling and add test
1 parent 7cc4f29 commit 4cdd770

2 files changed

Lines changed: 17 additions & 1 deletion

File tree

src/daq_config_server/models/converters/lookup_tables/_models.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,12 @@ def get_value(
6969
return target_row[target_column_index]
7070

7171
def get_column(self, column_name: ColumnNameT) -> list[int | float]:
72-
column_index = self.get_column_names().index(column_name)
72+
try:
73+
column_index = self.get_column_names().index(column_name)
74+
except ValueError as e:
75+
raise ValueError(
76+
f"'{column_name}' not in column names: {self.get_column_names()}"
77+
) from e
7378
return self.columns[column_index]
7479

7580
@abstractmethod

tests/unit_tests/converters/test_lookup_tables_converters.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,3 +205,14 @@ def test_get_column(generic_lookup_table: GenericLookupTable):
205205
assert generic_lookup_table.get_column("detector_distance_mm") == [150, 800]
206206
assert generic_lookup_table.get_column("beam_centre_x_mm") == [152.2, 152.08]
207207
assert generic_lookup_table.get_column("beam_centre_y_mm") == [166.26, 160.96]
208+
209+
210+
def test_get_column_with_invalid_column_name(generic_lookup_table: GenericLookupTable):
211+
with pytest.raises(
212+
ValueError,
213+
match=re.escape(
214+
"'column_name' not in column names: "
215+
+ "['detector_distance_mm', 'beam_centre_x_mm', 'beam_centre_y_mm']",
216+
),
217+
):
218+
assert generic_lookup_table.get_column("column_name") == [150, 800]

0 commit comments

Comments
 (0)