def test_editor_widget_not_leaked(self): widget = MultiPythonFileInterpreter() self.assertEqual(1, widget.editor_count) widget.append_new_editor() self.assertEqual(2, widget.editor_count) widget.append_new_editor() self.assertEqual(3, widget.editor_count) widget.close_tab(0) QApplication.processEvents() self.assert_number_of_widgets_matching(".interpreter.PythonFileInterpreter", 2) widget.close_tab(0) QApplication.processEvents() self.assert_number_of_widgets_matching(".interpreter.PythonFileInterpreter", 1) widget.close_all() QApplication.processEvents() # there should be zero interpreters self.assert_number_of_widgets_matching(".interpreter.PythonFileInterpreter", 0) # close the whole widget, this should delete everything from the QApplication widget.close() QApplication.processEvents() self.assert_number_of_widgets_matching(".interpreter.PythonFileInterpreter", 0) self.assert_no_toplevel_widgets()
def test_editor_widget_doesnt_create_find_replace_unless_requested(self): widget = MultiPythonFileInterpreter() self.assertEqual(1, widget.editor_count) widget.append_new_editor() self.assert_number_of_widgets_matching(".interpreter.PythonFileInterpreter", 2) self.assert_number_of_widgets_matching("Embedded", 0) widget.close_tab(1) QApplication.processEvents() # there will always be 1, because we never allow an empty editor widget self.assert_number_of_widgets_matching(".interpreter.PythonFileInterpreter", 1) self.assert_number_of_widgets_matching("Embedded", 0) # close the whole widget, this should delete everything from the QApplication widget.close() QApplication.processEvents() self.assert_number_of_widgets_matching(".interpreter.PythonFileInterpreter", 0) self.assert_no_toplevel_widgets()