Skip to content

Commit df4cea1

Browse files
RichardWaiteSTFCpeterfpeterson
authored andcommitted
Fix error on create_vanadium if no sample details in ISIS powder reduction (mantidproject#38399)
* Check if not vanadium before throw error for no sample details * Add unit test for check sample details * Add release note
1 parent 6d543e4 commit df4cea1

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
- Fix bug where unable to call `create_vanadium` without setting sample details in :ref:`ISIS Powder Diffraction Scripts <isis-powder-diffraction-ref>`.

scripts/Diffraction/isis_powder/abstract_inst.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,8 @@ def _generate_input_file_name(self, run_number, file_ext=None):
198198
return self._generate_inst_filename(run_number=run_number, file_ext=file_ext)
199199

200200
def _check_sample_details(self):
201-
if self._sample_details is None:
201+
# note vanadium sample details are set using advanced configs
202+
if self._sample_details is None and not self._is_vanadium:
202203
raise ValueError(
203204
"Absorption corrections cannot be run without sample details."
204205
" Please set sample details using set_sample before running absorption corrections."

scripts/Diffraction/isis_powder/test/ISISPowderAbstractInstrumentTest.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,18 @@ def test_output_focused_runs_summed_batch_mode(
274274
expected_calls = 2 * [call(d_spacing_group=run_string, tof_group=run_string, unit_to_keep=None)]
275275
mock_keep_unit.assert_has_calls(expected_calls)
276276

277+
def test_check_sample_details_is_vanadium(self):
278+
mock_inst = self._setup_mock_inst(calibration_dir="ignored", output_dir="ignored", yaml_file_path="ISISPowderRunDetailsTest.yaml")
279+
mock_inst._is_vanadium = True
280+
mock_inst._sample_details = None
281+
mock_inst._check_sample_details() # does not throw
282+
283+
def test_check_sample_details_is_not_vanadium(self):
284+
mock_inst = self._setup_mock_inst(calibration_dir="ignored", output_dir="ignored", yaml_file_path="ISISPowderRunDetailsTest.yaml")
285+
mock_inst._is_vanadium = False
286+
mock_inst._sample_details = None
287+
self.assertRaises(ValueError, mock_inst._check_sample_details)
288+
277289

278290
if __name__ == "__main__":
279291
unittest.main()

0 commit comments

Comments
 (0)