def test_search_box_selection_set_text(self): widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') widget.search_box.lineEdit().setText('Load') selected_algorithm = widget.get_selected_algorithm() self.assertEqual(selected_algorithm.name, 'Load') self.assertEqual(selected_algorithm.version, -1)
def test_tree_selection_single_version(self): widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'Load v.1') selected_algorithm = widget.get_selected_algorithm() self.assertEqual(selected_algorithm.name, 'Load') self.assertEqual(selected_algorithm.version, 1) self.assertEqual(widget.search_box.lineEdit().text(), 'Load')
def test_search_box_selection_ignores_tree_selection(self): widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') self._select_in_search_box(widget, 'Load') selected_algorithm = widget.get_selected_algorithm() self.assertEqual(selected_algorithm.name, 'Load') self.assertEqual(selected_algorithm.version, -1)
def test_tree_selection_two_versions(self): widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.1') selected_algorithm = widget.get_selected_algorithm() self.assertEqual(selected_algorithm.name, 'DoStuff') self.assertEqual(selected_algorithm.version, 1) self._select_in_tree(widget, 'DoStuff v.2') selected_algorithm = widget.get_selected_algorithm() self.assertEqual(selected_algorithm.name, 'DoStuff') self.assertEqual(selected_algorithm.version, 2)
def test_refresh(self): # Set a mock to return an empty descriptor list getDescriptors_orig = AlgorithmFactoryImpl.getDescriptors AlgorithmFactoryImpl.getDescriptors = empty_mock_get_algorithm_descriptors widget = AlgorithmSelectorWidget() self.assertEqual(0, widget.tree.topLevelItemCount()) # put back the original AlgorithmFactoryImpl.getDescriptors = getDescriptors_orig widget.refresh() self.assertEqual(4, widget.tree.topLevelItemCount())
def test_sorting_of_algorithms(self): widget = AlgorithmSelectorWidget() model = AlgorithmSelectorModel(None) top_level = [] widget._add_tree_items(top_level, model.get_algorithm_data()[1]) self.assertEquals(top_level[0].text(0), "Data") self.assertEquals(top_level[1].text(0), "Sorted") self.assertEquals(top_level[2].text(0), "Stuff") self.assertEquals(top_level[3].text(0), "Transform") second_level = top_level[1].takeChildren() self.assertEquals(second_level[0].text(0), "ComesFirst v.1") self.assertEquals(second_level[1].text(0), "GoesSecond v.1")
def test_sorting_of_algorithms(self): widget = AlgorithmSelectorWidget() model = AlgorithmSelectorModel(None) top_level = [] widget._add_tree_items(top_level, model.get_algorithm_data()[1]) self.assertEqual(top_level[0].text(0), "Data") self.assertEqual(top_level[1].text(0), "Sorted") self.assertEqual(top_level[2].text(0), "Stuff") self.assertEqual(top_level[3].text(0), "Transform") second_level = top_level[1].takeChildren() self.assertEqual(second_level[0].text(0), "ComesFirst v.1") self.assertEqual(second_level[1].text(0), "GoesSecond v.1")
def test_search_box_selection_filter_mode_on_qt5(self): if not qtpy.PYQT5: self.skipTest("Versions below Qt5 do not support the following functionality, " "and the default Qt behaviour is used") else: widget = AlgorithmSelectorWidget() self.assertEqual(widget.search_box.completer().filterMode(), Qt.MatchContains)
def test_run_dialog_opens_on_return_press(self): with patch(createDialogFromName_func_name) as createDialog: widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') QTest.keyClick(widget.search_box, Qt.Key_Return) createDialog.assert_called_once_with('DoStuff', 2, None, False, {}, '', [])
def test_run_dialog_opens_on_execute_button_click(self): with patch(createDialogFromName_func_name) as createDialog: widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') widget.execute_button.click() createDialog.assert_called_once_with('DoStuff', 2, None, False, {}, '', [])
def test_execute_on_click(self): with patch( 'mantidqt.interfacemanager.InterfaceManager.createDialogFromName' ) as createDialog: widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') widget.execute_button.click() createDialog.assert_called_once_with('DoStuff', 2)
def test_execute_on_return_press(self): with patch( 'mantidqt.interfacemanager.InterfaceManager.createDialogFromName' ) as createDialog: widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') QTest.keyClick(widget.search_box, Qt.Key_Return) createDialog.assert_called_once_with('DoStuff', 2)
def test_run_dialog_opens_on_double_click(self): with patch(createDialogFromName_func_name) as createDialog: widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'Load v.1') selected_item = widget.tree.selectedItems()[0] item_pos = widget.tree.visualItemRect(selected_item).center() QTest.mouseDClick(widget.tree.viewport(), Qt.LeftButton, Qt.NoModifier, pos=item_pos) createDialog.assert_called_once_with('Load', 1, None, False, {}, '', [])
def test_search_box_selection_wrong_text(self): widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') widget.search_box.lineEdit().setText('abc') self.assertEqual(widget.get_selected_algorithm(), None) self.assertEqual(widget.search_box.currentText(), 'abc')
def test_search_box_selection_wrong_text(self): widget = AlgorithmSelectorWidget() self._select_in_tree(widget, 'DoStuff v.2') widget.search_box.lineEdit().setText('abc') self.assertTrue(widget.get_selected_algorithm() is None) self.assertEqual(widget.search_box.currentText(), 'abc')