summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2014-11-07 10:03:09 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2014-11-07 10:03:09 (GMT)
commit7c28999cb2d46da5b688ae1a9fb4e63666628541 (patch)
treee4760fb466b90041ae9360f48f297135bd0e0094 /Lib
parent9f2e0d6a86c8384fec5f0e35e0487295d74c3315 (diff)
parent8e92f5727414815fce9a12ded1acfb7e13037e85 (diff)
downloadcpython-7c28999cb2d46da5b688ae1a9fb4e63666628541.zip
cpython-7c28999cb2d46da5b688ae1a9fb4e63666628541.tar.gz
cpython-7c28999cb2d46da5b688ae1a9fb4e63666628541.tar.bz2
Issue #22769: Fixed ttk.Treeview.tag_has() when called without arguments.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/tkinter/test/test_ttk/test_widgets.py17
-rw-r--r--Lib/tkinter/ttk.py6
2 files changed, 21 insertions, 2 deletions
diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index f73ac79..8a27324 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -1,6 +1,6 @@
import unittest
import tkinter
-from tkinter import ttk
+from tkinter import ttk, TclError
from test.support import requires
import sys
@@ -1563,6 +1563,21 @@ class TreeviewTest(AbstractWidgetTest, unittest.TestCase):
'blue')
self.assertIsInstance(self.tv.tag_configure('test'), dict)
+ def test_tag_has(self):
+ item1 = self.tv.insert('', 'end', text='Item 1', tags=['tag1'])
+ item2 = self.tv.insert('', 'end', text='Item 2', tags=['tag2'])
+ self.assertRaises(TypeError, self.tv.tag_has)
+ self.assertRaises(TclError, self.tv.tag_has, 'tag1', 'non-existing')
+ self.assertTrue(self.tv.tag_has('tag1', item1))
+ self.assertFalse(self.tv.tag_has('tag1', item2))
+ self.assertFalse(self.tv.tag_has('tag2', item1))
+ self.assertTrue(self.tv.tag_has('tag2', item2))
+ self.assertFalse(self.tv.tag_has('tag3', item1))
+ self.assertFalse(self.tv.tag_has('tag3', item2))
+ self.assertEqual(self.tv.tag_has('tag1'), (item1,))
+ self.assertEqual(self.tv.tag_has('tag2'), (item2,))
+ self.assertEqual(self.tv.tag_has('tag3'), ())
+
@add_standard_options(StandardTtkOptionsTests)
class SeparatorTest(AbstractWidgetTest, unittest.TestCase):
diff --git a/Lib/tkinter/ttk.py b/Lib/tkinter/ttk.py
index 29d225c..4327dbb 100644
--- a/Lib/tkinter/ttk.py
+++ b/Lib/tkinter/ttk.py
@@ -1456,7 +1456,11 @@ class Treeview(Widget, tkinter.XView, tkinter.YView):
all items which have the specified tag.
* Availability: Tk 8.6"""
- return self.tk.getboolean(
+ if item is None:
+ return self.tk.splitlist(
+ self.tk.call(self._w, "tag", "has", tagname))
+ else:
+ return self.tk.getboolean(
self.tk.call(self._w, "tag", "has", tagname, item))