def test_combo_box_set_text(self): with quite.EventLoop(0.1): combo_box = quite.ComboBox() combo_box.show() times = [] @quite.connect_with(combo_box.string.changed) def text_changed(text): if len(times) == 0: self.assertEqual(text, 'first') elif len(times) == 1: self.assertEqual(text, 'second') elif len(times) == 2: self.assertEqual(text, 'first') elif len(times) == 3: self.assertEqual(text, '') times.append(len(times)) combo_box.string.set_value('first') combo_box.string.set_value('second') combo_box.string.set_value('first') self.assertEqual(len(times), 3) self.assertEqual(combo_box.string_list.count, 2) combo_box.clear() self.assertEqual(len(times), 4) self.assertEqual(combo_box.string_list.count, 0)
def test_table_widget_row(self): with quite.EventLoop(0.1): self.table_widget.show() executed = [False] times = [] @quite.connect_with(self.table_widget.dict.changed) def test_changed(text): executed[0] = True if len(times) == 0: self.assertEqual(text, { '字符串': 'first', '整形': '1', '浮点型': '1.1' }) elif len(times) == 1: self.assertEqual(text, { '字符串': 'second', '整形': '2', '浮点型': '2.2' }) times.append(len(times)) self.table_widget.dict_list.value = [{ '字符串': 'first', '整形': 1, '浮点型': 1.1 }, { '字符串': 'second', '整形': 2, '浮点型': 2.2 }] self.assertTrue(executed[0])
def test_clear_data(self): with quite.EventLoop(0.1): self.plot_widget = quite.PlotWidget() x = np.random.random(10) y = np.random.random(10) self.plot_widget.plot(x=x, y=y) self.plot_widget.clear() self.assertEqual(self.plot_widget.get_data(), None)
def test_error_plot_data(self): with quite.EventLoop(0.1): self.plot_widget = quite.PlotWidget() x = np.random.random(10) y = np.random.random(9) with self.assertRaises(Exception): self.plot_widget.plot(x=x, y=y) self.plot_widget.append_plot(x=x, y=y)
def test_set_labels(self): with quite.EventLoop(0.1): self.plot_widget = quite.PlotWidget() valid_labels = ['X', 'Y'] valid_units = ['x', 'y'] self.assertEqual(self.plot_widget.set_labels(text=valid_labels, units=valid_units), None) in_valid_labels = ['X', 'Y', 'Z'] self.assertRaises(ValueError, self.plot_widget.set_labels, in_valid_labels) in_valid_units = ['x'] self.assertRaises(ValueError, self.plot_widget.set_labels, valid_labels, in_valid_units)
def test_combo_box_row(self): with quite.EventLoop(0.1): combo_box = quite.ComboBox() combo_box.show() combo_box.string_list.value = st.foreach(str, range(10)) self.assertEqual(combo_box.string_list.value, st.foreach(str, range(10))) combo_box.string_list.value = st.foreach(str, range(9)) self.assertEqual(combo_box.string_list.value, st.foreach(str, range(9)))
def test_list_widget_string_list(self): with quite.EventLoop(0.1): list_widget = quite.ListWidget() list_widget.show() executed = [False] string_list = st.foreach(str, range(10)) @quite.connect_with(list_widget.string_list.changed) def string_list_changed(string_list_now): self.assertEqual(string_list, string_list_now) executed[0] = True list_widget.string_list.value = string_list self.assertTrue(executed[0])
def test_list_widget_row(self): with quite.EventLoop(0.1): list_widget = quite.ListWidget() list_widget.show() executed = [False] @quite.connect_with(list_widget.string.changed) def text_changed(text): self.assertEqual(text, '1') executed[0] = True list_widget.string_list.value = st.foreach(str, range(10)) list_widget.index.value = 1 self.assertTrue(executed[0])
def test_create_widget_dialog(self): current_path = os.path.dirname(__file__) ui_file_path = os.path.join(current_path, 'res', '3.widget.controller.ui') with quite.EventLoop(timeout=.10): c = quite.WidgetUiController(None, ui_file_path) c.show() self.assertTrue(isinstance(c.w, quite.Widget)) self.assertTrue(isinstance(c.button('add'), quite.PushButton)) self.assertTrue(isinstance(c.combo('index'), quite.ComboBox)) self.assertTrue(isinstance(c.edit('number'), quite.LineEdit)) self.assertTrue(isinstance(c.list('numbers'), quite.ListWidget))
def test_combo_box_string_list(self): with quite.EventLoop(0.1): combo_box = quite.ComboBox() combo_box.show() executed = [False] string_list = st.foreach(str, range(10)) @quite.connect_with(combo_box.string_list.changed) def string_list_changed(string_list_now): self.assertEqual(string_list, string_list_now) executed[0] = True combo_box.string_list.value = string_list self.assertTrue(executed[0])
def test_push_button_text(self): with quite.EventLoop(0.1): push_button = quite.PushButton() push_button.show() times = [] @quite.connect_with(push_button.string.changed) def text_changed(text): if len(times) == 0: self.assertEqual(text, 'first') elif len(times) == 1: self.assertEqual(text, 'second') times.append(len(times)) push_button.string.value = 'first' push_button.string.value = 'second' self.assertEqual(len(times), 2)
def test_table_widget_set_text(self): with quite.EventLoop(0.1): self.table_widget.show() times = [] @quite.connect_with(self.table_widget.dict.changed) def text_changed(table_dict): if len(times) == 0: self.assertEqual(table_dict, { '字符串': 'first', '整形': '1', '浮点型': '1.1' }) elif len(times) == 1: self.assertEqual(table_dict, { '字符串': 'second', '整形': '2', '浮点型': '2.2' }) elif len(times) == 2: self.assertEqual(table_dict, { '字符串': 'first', '整形': '1', '浮点型': '1.1' }) elif len(times) == 3: self.assertEqual(table_dict, '') times.append(len(times)) self.table_widget.dict.set_value({ '字符串': 'first', '整形': 1, '浮点型': 1.1 }) self.table_widget.dict.set_value({ '字符串': 'second', '整形': 2, '浮点型': 2.2 }) self.table_widget.dict.set_value({ '字符串': 'first', '整形': 1, '浮点型': 1.1 }) self.assertEqual(len(times), 3) self.assertEqual(self.table_widget.dict_list.count, 2)
def test_line_edit_text(self): with quite.EventLoop(0.1): line_edit = quite.LineEdit() line_edit.show() times = [] @quite.connect_with(line_edit.string.changed) def text_changed(text): if len(times) == 0: self.assertEqual(text, 'first') elif len(times) == 1: self.assertEqual(text, 'second') times.append(len(times)) line_edit.string.value = 'first' line_edit.string.value = 'second' self.assertEqual(len(times), 2)
def test_plot_data(self): with quite.EventLoop(0.1): self.plot_widget = quite.PlotWidget() x = np.random.random(10) y = np.random.random(10) self.plot_widget.plot(x=x, y=y) self.assertTrue((self.plot_widget.get_data() == np.array([x, y])).all()) new_x = np.random.random(9) new_y = np.random.random(9) self.plot_widget.plot(x=new_x, y=new_y) self.assertTrue((self.plot_widget.get_data() == np.array([new_x, new_y])).all()) add_x = np.random.random(5) add_y = np.random.random(5) old_data = self.plot_widget.get_data() self.plot_widget.append_plot(x=add_x, y=add_y) new_data = self.plot_widget.get_data() self.assertTrue((new_data == np.array(np.append(old_data[0], add_x)), np.append(old_data[1], add_y)))
def test_push_button_triggered(self): with quite.EventLoop(0.10): push_button = quite.PushButton() push_button.show() times = [] @quite.connect_with(push_button.excited) def button_clicked(): if len(times) == 0: self.assertEqual(push_button.string.value, 'first') elif len(times) == 1: self.assertEqual(push_button.string.value, 'second') times.append(len(times)) push_button.string.value = 'first' push_button.click() push_button.string.value = 'second' push_button.click() self.assertEqual(len(times), 2)
def test_table_widget_dict_list(self): with quite.EventLoop(0.1): self.table_widget.show() executed = [False] dict_list = [{ '字符串': 'first', '整形': 1, '浮点型': 1.1 }, { '字符串': 'second', '整形': 2, '浮点型': 2.2 }] @quite.connect_with(self.table_widget.dict_list.changed) def string_list_changed(dict_list_now): self.assertEqual(dict_list, dict_list_now) executed[0] = True self.table_widget.dict_list.value = dict_list self.assertTrue(executed[0])
def test_spin_box_string_property(self): with quite.EventLoop(0.1): spin_box = quite.SpinBox() spin_box.show() times = [] @quite.connect_with(spin_box.string.changed) def spin_box_integer_changed(value: str): if len(times) == 0: self.assertEqual(value, '1') elif len(times) == 1: self.assertEqual(value, '10') elif len(times) == 2: self.assertEqual(value, '99') elif len(times) == 3: self.assertEqual(value, '0') times.append(len(times)) spin_box.string.value = '1' spin_box.string.value = '10' spin_box.string.value = '99' spin_box.string.value = '-1' self.assertEqual(len(times), 4)
def test_double_spin_box_integer_property(self): with quite.EventLoop(.10): double_spin_box = quite.DoubleSpinBox() double_spin_box.show() times = [] @quite.connect_with(double_spin_box.float.changed) def double_spin_box_double_changed(value: float): if len(times) == 0: self.assertEqual(value, 1.1) elif len(times) == 1: self.assertEqual(value, 10.2) elif len(times) == 2: self.assertEqual(value, 99.3) elif len(times) == 3: self.assertEqual(value, 0) times.append(len(times)) double_spin_box.float.value = 1.1 double_spin_box.float.value = 10.2 double_spin_box.float.value = 99.3 double_spin_box.float.value = -1.4 self.assertEqual(len(times), 4)
def test_list_widget_set_text(self): with quite.EventLoop(0.1): list_widget = quite.ListWidget() list_widget.show() times = [] @quite.connect_with(list_widget.string.changed) def text_changed(string): if len(times) == 0: self.assertEqual(string, 'first') elif len(times) == 1: self.assertEqual(string, 'second') elif len(times) == 2: self.assertEqual(string, 'first') elif len(times) == 3: self.assertEqual(string, '') times.append(len(times)) list_widget.string.set_value('first') list_widget.string.set_value('second') list_widget.string.set_value('first') self.assertEqual(len(times), 3) self.assertEqual(list_widget.string_list.count, 2)
def test_double_spin_box_string_property(self): with quite.EventLoop(0.1): double_spin_box = quite.DoubleSpinBox() double_spin_box.show() times = [] @quite.connect_with(double_spin_box.string.changed) def double_spin_box_double_changed(value: str): if len(times) == 0: self.assertEqual(value, '1.1') elif len(times) == 1: self.assertEqual(value, '10.2') elif len(times) == 2: self.assertEqual(value, '99.3') elif len(times) == 3: self.assertEqual(value, '0.0') times.append(len(times)) double_spin_box.string.value = '1.1' double_spin_box.string.value = '10.2' double_spin_box.string.value = '99.3' double_spin_box.string.value = '-1.4' self.assertEqual(len(times), 4)
def test_spin_box_integer_property(self): with quite.EventLoop(0.1): spin_box = quite.SpinBox() spin_box.show() times = [] @quite.connect_with(spin_box.int.changed) def spin_box_integer_changed(value: int): if len(times) == 0: self.assertEqual(value, 1) elif len(times) == 1: self.assertEqual(value, 10) elif len(times) == 2: self.assertEqual(value, 99) elif len(times) == 3: self.assertEqual(value, 0) times.append(len(times)) spin_box.int.value = 1 spin_box.int.value = 10 spin_box.int.value = 99 spin_box.int.value = -1 self.assertEqual(len(times), 4)
def test_event_loop_timeout(self): st.set_time_point('start') with quite.EventLoop(0.1): pass self.assertTrue(80 <= st.microsecond_from('start') <= 120)