Skip to content

Commit 3180767

Browse files
committed
fixed adjust roi test
- Added tests for adding, removing, renaming, and adjusting ROIs. - Implemented tests for changing ROI color and toggling normalization. - Added tests for exporting data to CSV and RITS formats. - Included utility method to open the Spectrum Viewer.
1 parent a40660a commit 3180767

File tree

1 file changed

+41
-13
lines changed

1 file changed

+41
-13
lines changed

mantidimaging/gui/test/gui_system_spectrum_test.py

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,14 @@
33
from __future__ import annotations
44

55
from unittest import mock
6+
from pathlib import Path
67

78
from PyQt5.QtCore import Qt
89
from PyQt5.QtTest import QTest
910

11+
from mantidimaging.core.utility.sensible_roi import SensibleROI
1012
from mantidimaging.gui.test.gui_system_base import GuiSystemBase, SHOW_DELAY, SHORT_DELAY
13+
from mantidimaging.gui.windows.spectrum_viewer.model import SpecType
1114
from mantidimaging.test_helpers.qt_test_helpers import wait_until
1215

1316

@@ -57,6 +60,19 @@ def test_add_roi(self) -> None:
5760
self.assertIn(f'roi_{i}', self.spectrum_window.roi_table_model.roi_names())
5861
self.assertIn(f'roi_{i}', self.spectrum_window.spectrum_widget.roi_dict)
5962

63+
def test_remove_roi(self) -> None:
64+
QTest.mouseClick(self.spectrum_window.addBtn, Qt.MouseButton.LeftButton)
65+
QTest.qWait(SHORT_DELAY)
66+
initial_roi_count = self.spectrum_window.roi_table_model.rowCount()
67+
68+
QTest.mouseClick(self.spectrum_window.removeBtn, Qt.MouseButton.LeftButton)
69+
QTest.qWait(SHORT_DELAY)
70+
final_roi_count = self.spectrum_window.roi_table_model.rowCount()
71+
72+
self.assertEqual(final_roi_count, initial_roi_count - 1)
73+
self.assertNotIn(f'roi_{initial_roi_count - 1}', self.spectrum_window.roi_table_model.roi_names())
74+
self.assertNotIn(f'roi_{initial_roi_count - 1}', self.spectrum_window.spectrum_widget.roi_dict)
75+
6076
def test_change_roi_color(self) -> None:
6177
QTest.mouseClick(self.spectrum_window.addBtn, Qt.MouseButton.LeftButton)
6278
QTest.qWait(SHORT_DELAY)
@@ -80,22 +96,19 @@ def test_rename_roi(self) -> None:
8096
def test_adjust_roi(self):
8197
QTest.mouseClick(self.spectrum_window.addBtn, Qt.MouseButton.LeftButton)
8298
QTest.qWait(SHORT_DELAY)
83-
roi_name = self.spectrum_window.presenter.get_roi_names()[0]
84-
roi = self.spectrum_window.presenter.model.get_roi(roi_name)
85-
new_roi = roi.copy()
86-
new_roi.left += 10
87-
new_roi.top += 10
88-
self.spectrum_window.presenter.model.set_roi(roi_name, new_roi)
99+
100+
roi_names = self.spectrum_window.presenter.get_roi_names()
101+
roi_name = next(name for name in roi_names if name != 'all')
102+
103+
roi_widget = self.spectrum_window.spectrum_widget.roi_dict[roi_name]
104+
105+
roi_widget.setPos((roi_widget.pos().x() + 10, roi_widget.pos().y() + 10))
89106
self.spectrum_window.presenter.handle_roi_moved()
90-
updated_roi = self.spectrum_window.presenter.model.get_roi(roi_name)
91-
assert updated_roi.left == new_roi.left
92-
assert updated_roi.top == new_roi.top
93107

94-
def test_reset_units_menu(self) -> None:
95-
self.assertFalse(self.spectrum_window.tof_mode_select_group.isEnabled())
108+
updated_roi = self.spectrum_window.presenter.model.get_roi(roi_name)
96109

97-
self.spectrum_window.presenter.handle_sample_change("sample_uuid")
98-
self.assertTrue(self.spectrum_window.tof_mode_select_group.isEnabled())
110+
assert updated_roi.left == roi_widget.pos().x()
111+
assert updated_roi.top == roi_widget.pos().y()
99112

100113
def test_normalisation_toggle(self):
101114
self.spectrum_window.normaliseCheckBox.setCheckState(Qt.CheckState.Checked)
@@ -114,3 +127,18 @@ def test_export_csv(self) -> None:
114127
with open("test_output.csv", "r") as file:
115128
lines = file.readlines()
116129
self.assertGreater(len(lines), 1)
130+
131+
@mock.patch("mantidimaging.gui.windows.spectrum_viewer.presenter.SpectrumViewerWindowPresenter._async_save_done")
132+
def test_export_rits(self, mock_async_save_done):
133+
with mock.patch(
134+
'mantidimaging.gui.windows.spectrum_viewer.view.SpectrumViewerWindowView.get_rits_export_filename'
135+
) as mock_get_rits_export_filename:
136+
mock_get_rits_export_filename.return_value = '/tmp/test_export.dat'
137+
QTest.mouseClick(self.spectrum_window.exportButtonRITS, Qt.MouseButton.LeftButton)
138+
QTest.qWait(SHORT_DELAY)
139+
wait_until(lambda: mock_async_save_done.call_count > 0)
140+
141+
def test_reset_units_menu(self) -> None:
142+
self.assertFalse(self.spectrum_window.tof_mode_select_group.isEnabled())
143+
self.spectrum_window.presenter.handle_sample_change("uuid")
144+
self.assertTrue(self.spectrum_window.tof_mode_select_group.isEnabled())

0 commit comments

Comments
 (0)