Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Lib/test/test_ttk/test_style.py
Original file line number Diff line number Diff line change
Expand Up @@ -420,7 +420,8 @@ def test_theme_create_image(self):

b = ttk.Label(self.root, style='TestWidget')
b.pack(expand=True, fill='both')
self.assertEqual(b.winfo_reqwidth(), 134)
# The exact width varies with the Tk version and display scaling.
self.assertGreater(b.winfo_reqwidth(), 130)
self.assertEqual(b.winfo_reqheight(), 100)

style.theme_use(curr_theme)
Expand Down
35 changes: 27 additions & 8 deletions Lib/test/test_ttk/test_widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -1500,8 +1500,13 @@ def test_configure_height(self):

def test_configure_selectmode(self):
widget = self.create()
self.checkEnumParam(widget, 'selectmode',
'none', 'browse', 'extended')
if tk_version >= (9, 1):
self.checkEnumParam(widget, 'selectmode',
'none', 'single', 'browse', 'extended',
'multiple')
else:
self.checkEnumParam(widget, 'selectmode',
'none', 'browse', 'extended')

@requires_tk(8, 7)
def test_configure_selecttype(self):
Expand Down Expand Up @@ -1784,6 +1789,9 @@ def simulate_heading_click(x, y):
commands = self.tv.master._tclCommands
self.tv.heading('#0', command=str(self.tv.heading('#0', command=None)))
self.assertEqual(commands, self.tv.master._tclCommands)
# Click elsewhere first, so the second heading click is not reported
# as a double click (which does not invoke the command).
simulate_mouse_click(self.tv, 5, 50)
simulate_heading_click(5, 5)
if not success:
self.fail("The command associated to the treeview heading wasn't "
Expand Down Expand Up @@ -1892,10 +1900,11 @@ def test_insert_item(self):
value)

# test for values which are not None
keep_type = self.wantobjects and tk_version >= (9, 1)
itemid = self.tv.insert('', 'end', 0)
self.assertEqual(itemid, '0')
self.assertEqual(itemid, 0 if keep_type else '0')
itemid = self.tv.insert('', 'end', 0.0)
self.assertEqual(itemid, '0.0')
self.assertEqual(itemid, 0.0 if keep_type else '0.0')
# this is because False resolves to 0 and element with 0 iid is already present
self.assertRaises(tkinter.TclError, self.tv.insert, '', 'end', False)
self.assertRaises(tkinter.TclError, self.tv.insert, '', 'end', '')
Expand Down Expand Up @@ -1955,7 +1964,10 @@ def test_selection(self):

self.tv.insert('', 'end', id=b'bytes\xe2\x82\xac')
self.tv.selection_set(b'bytes\xe2\x82\xac')
self.assertEqual(self.tv.selection(), ('bytes\xe2\x82\xac',))
self.assertEqual(self.tv.selection(),
(b'bytes\xe2\x82\xac',)
if self.wantobjects and tk_version >= (9, 1)
else ('bytes\xe2\x82\xac',))

self.tv.selection_set()
self.assertEqual(self.tv.selection(), ())
Expand Down Expand Up @@ -2004,14 +2016,19 @@ def test_virtual_events(self):
def test_set(self):
self.tv['columns'] = ['A', 'B']
item = self.tv.insert('', 'end', values=['a', 'b'])
self.assertEqual(self.tv.set(item), {'A': 'a', 'B': 'b'})
values = self.tv.set(item)
if tk_version >= (9, 1):
self.assertEqual(values.pop('#0'), '')
self.assertEqual(values, {'A': 'a', 'B': 'b'})

self.tv.set(item, 'B', 'a')
self.assertEqual(self.tv.item(item, values=None),
('a', 'a') if self.wantobjects else 'a a')

self.tv['columns'] = ['B']
self.assertEqual(self.tv.set(item), {'B': 'a'})
values = self.tv.set(item)
values.pop('#0', None)
self.assertEqual(values, {'B': 'a'})

self.tv.set(item, 'B', 'b')
self.assertEqual(self.tv.set(item, column='B'), 'b')
Expand All @@ -2023,7 +2040,9 @@ def test_set(self):
123 if self.wantobjects else '123')
self.assertEqual(self.tv.item(item, values=None),
(123, 'a') if self.wantobjects else '123 a')
self.assertEqual(self.tv.set(item),
values = self.tv.set(item)
values.pop('#0', None)
self.assertEqual(values,
{'B': 123} if self.wantobjects else {'B': '123'})

# inexistent column
Expand Down
Loading