Skip to content

Commit a7b1b84

Browse files
bpo-33096: Fix ttk.Treeview.insert. (GH-6228)
Allow ttk.Treeview.insert to insert iid that has a false boolean value. Note iid=0 and iid=False would be same. (cherry picked from commit 3ab44c0) Co-authored-by: Garvit Khatri <[email protected]>
1 parent 5fc6fc8 commit a7b1b84

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

Lib/tkinter/test/test_ttk/test_widgets.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,6 +1662,15 @@ def test_insert_item(self):
16621662
self.tv.insert('', 'end', text=value), text=None),
16631663
value)
16641664

1665+
# test for values which are not None
1666+
itemid = self.tv.insert('', 'end', 0)
1667+
self.assertEqual(itemid, '0')
1668+
itemid = self.tv.insert('', 'end', 0.0)
1669+
self.assertEqual(itemid, '0.0')
1670+
# this is because False resolves to 0 and element with 0 iid is already present
1671+
self.assertRaises(tkinter.TclError, self.tv.insert, '', 'end', False)
1672+
self.assertRaises(tkinter.TclError, self.tv.insert, '', 'end', '')
1673+
16651674

16661675
def test_selection(self):
16671676
self.assertRaises(TypeError, self.tv.selection, 'spam')

Lib/tkinter/ttk.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1363,7 +1363,7 @@ def insert(self, parent, index, iid=None, **kw):
13631363
already exist in the tree. Otherwise, a new unique identifier
13641364
is generated."""
13651365
opts = _format_optdict(kw)
1366-
if iid:
1366+
if iid is not None:
13671367
res = self.tk.call(self._w, "insert", parent, index,
13681368
"-id", iid, *opts)
13691369
else:
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Allow ttk.Treeview.insert to insert iid that has a false boolean value.
2+
Note iid=0 and iid=False would be same.
3+
Patch by Garvit Khatri.
4+

0 commit comments

Comments
 (0)