def test_expand_item(items, user, user2): items.append(user) items.append(user2, user) item_expanded = CheckCalled(items, 'item-expanded') items.expand_item(user) refresh_gui() assert item_expanded.called
def test_expanded_signal(items, user, user2): items.append(user) items.append(user2, user) item_expanded = CheckCalled(items, 'item-expanded') items.expand_row(items._path_for(user), True) refresh_gui() assert item_expanded.called
def test_update_and_read(self, proxy, value): proxy.update(value) if isinstance(proxy.widget, Gtk.FileChooserButton): refresh_gui(0.1, 0.1) else: refresh_gui() data = proxy.read() self.assertEqual(data, value)
def test_select_single_fails_when_select_multiple_is_set(self): items.append(user) items.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) self.assertRaises(AttributeError, 'items.selected_item = user') self.assertRaises(AttributeError, 'items.selected_item') items.selected_items = [user] refresh_gui() self.assertEqual(items.selected_items, [user])
def test_add_proxy_for(self): m = ProxyGroup() e = Gtk.Entry() m.add_proxy_for('foo', e) check = CheckCalled(m, 'changed') e.set_text('a') refresh_gui() self.assertEqual(check.called_count, 1)
def test_gcall(self): data = [] def doit(): gcall(data.append, 1) AsyncTask(doit).start() refresh_gui(.1) self.assertEqual(data, [1])
def test_double_click_event(items, user): items.append(user, select=True) e = gtk.gdk.Event(gtk.gdk._2BUTTON_PRESS) e.button = 1 item_clicked = CheckCalled(items, 'item-double-clicked') items._emit_for_path((0, ), e) refresh_gui() assert item_clicked.called assert item_clicked.called_count == 1
def test_list_collapse_item(items, user, user2): items.append(user) items.append(user2, user) item_collapsed = CheckCalled(items, 'item-collapsed') items.expand_item(user) refresh_gui() items.collapse_item(user) refresh_gui() assert item_collapsed.called
def test_item_expanded(items, user, user2): items.append(user) items.append(user2, user) items.expand_item(user) refresh_gui() assert items.item_expanded(user) items.collapse_item(user) refresh_gui() assert not items.item_expanded(user)
def test_tree_collapse_item(items, user, user2): items.append(user) items.append(user2, user) item_collapsed = CheckCalled(items, 'item-collapsed') items.expand_item(user) refresh_gui() items.collapse_row(items._path_for(user)) refresh_gui() assert item_collapsed.called
def test_left_click_event(items, user): items.append(user, select=True) e = gtk.gdk.Event(gtk.gdk.BUTTON_PRESS) e.button = 1 e.x, e.y = 10.0, 10.0 item_clicked = CheckCalled(items, 'item-left-clicked') items._emit_for_path((0, ), e) refresh_gui() assert item_clicked.called assert item_clicked.called_count == 1
def test_invoke_in_mainloop(self): data = [] def doit(): invoke_in_mainloop(data.append, 1) assert invoke_in_mainloop(len, data) == 1 AsyncTask(doit).start() # timeout needed for asynctask cleanup refresh_gui(.1) self.assertEqual(data, [1])
def test_edit_name(items, user): items.append(user) item_changed = CheckCalled(items, 'item-changed') refresh_gui() assert not item_changed.called name_cell = items.get_columns()[0].get_cells()[0] text_path = items._path_for(user) name_cell.emit('edited', text_path, 'peter') refresh_gui() assert user.name == 'peter' assert item_changed.called
def test_async_task(self): data = [] def do(): data.append(1) return 2, 3 def done(*k): data.extend(k) GeneratorTask(do, done).start() refresh_gui() self.assertEqual(data, [1, 2, 3])
def test_add_proxy(self): m = ProxyGroup() e = Gtk.Entry() p = GtkEntryProxy(e) m.add_proxy('foo', p) check = CheckCalled(m, 'changed') e.set_text('a') refresh_gui() self.assertEqual(check.called_count, 1) p.update('b') refresh_gui() self.assertEqual(check.called_count, 2)
def test_generator_task(self): data = [] def do(): for i in range(10): yield i def work(val): data.append(val) def done(): data.extend(data) GeneratorTask(do, work, done).start() refresh_gui() self.assertEqual( data, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
def test_deselect_multiple(self): listing = [user, user2] items.extend(listing) items.get_selection().set_mode(Gtk.SelectionMode.MULTIPLE) items.selected_items = listing refresh_gui() self.assertEqual(items.selected_items, listing) items.selected_items = [] refresh_gui() self.assertEqual(items.selected_items, []) items.selected_items = listing refresh_gui() self.assertEqual(items.selected_items, listing) items.selected_items = None refresh_gui() self.assertEqual(items.selected_items, [])
def test_view_iters(self): items.extend([user, user2, user3]) items.set_visible_func(lambda obj: obj.age < 100) refresh_gui() self.assertTrue(items.item_visible(user)) self.assertFalse(items.item_visible(user3))
def test_signal_after(self): d = _Delegate5() d.main.clicked() refresh_gui() self.assertTrue(d.clicked)
def test_deselect(self): items.append(user) items.selected_item = user refresh_gui() items.selected_item = None refresh_gui()
def test_column_width(self): col = Column('test', width=30) view_col = col.create_treecolumn(None) refresh_gui() self.assertEqual(view_col.get_sizing(), Gtk.TreeViewColumnSizing.FIXED) self.assertEqual(view_col.get_fixed_width(), 30)
def _refresh_gui(): refresh_gui() loop.call_soon(_refresh_gui)
def assert_selects(self, key, item): self.entry.set_text(key) refresh_gui() assert self.ol.selected_item is item
def _destroy(win): # XXX: util? win.destroy() if not Gtk.main_level(): from pyGtkHelpers.utils import refresh_gui refresh_gui()
def test_signal_handle(self): d = _TestDelegate() d.main.clicked() refresh_gui() self.assertTrue(d.clicked)