@@ -1474,8 +1474,13 @@ def test_configure_height(self):
14741474
14751475 def test_configure_selectmode (self ):
14761476 widget = self .create ()
1477- self .checkEnumParam (widget , 'selectmode' ,
1478- 'none' , 'browse' , 'extended' )
1477+ if tk_version >= (9 , 1 ):
1478+ self .checkEnumParam (widget , 'selectmode' ,
1479+ 'none' , 'single' , 'browse' , 'extended' ,
1480+ 'multiple' )
1481+ else :
1482+ self .checkEnumParam (widget , 'selectmode' ,
1483+ 'none' , 'browse' , 'extended' )
14791484
14801485 @requires_tk (8 , 7 )
14811486 def test_configure_selecttype (self ):
@@ -1758,6 +1763,9 @@ def simulate_heading_click(x, y):
17581763 commands = self .tv .master ._tclCommands
17591764 self .tv .heading ('#0' , command = str (self .tv .heading ('#0' , command = None )))
17601765 self .assertEqual (commands , self .tv .master ._tclCommands )
1766+ # Click elsewhere first, so the second heading click is not reported
1767+ # as a double click (which does not invoke the command).
1768+ simulate_mouse_click (self .tv , 5 , 50 )
17611769 simulate_heading_click (5 , 5 )
17621770 if not success :
17631771 self .fail ("The command associated to the treeview heading wasn't "
@@ -1866,10 +1874,11 @@ def test_insert_item(self):
18661874 value )
18671875
18681876 # test for values which are not None
1877+ keep_type = self .wantobjects and tk_version >= (9 , 1 )
18691878 itemid = self .tv .insert ('' , 'end' , 0 )
1870- self .assertEqual (itemid , '0' )
1879+ self .assertEqual (itemid , 0 if keep_type else '0' )
18711880 itemid = self .tv .insert ('' , 'end' , 0.0 )
1872- self .assertEqual (itemid , '0.0' )
1881+ self .assertEqual (itemid , 0.0 if keep_type else '0.0' )
18731882 # this is because False resolves to 0 and element with 0 iid is already present
18741883 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , False )
18751884 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , '' )
@@ -1929,7 +1938,10 @@ def test_selection(self):
19291938
19301939 self .tv .insert ('' , 'end' , id = b'bytes\xe2 \x82 \xac ' )
19311940 self .tv .selection_set (b'bytes\xe2 \x82 \xac ' )
1932- self .assertEqual (self .tv .selection (), ('bytes\xe2 \x82 \xac ' ,))
1941+ self .assertEqual (self .tv .selection (),
1942+ (b'bytes\xe2 \x82 \xac ' ,)
1943+ if self .wantobjects and tk_version >= (9 , 1 )
1944+ else ('bytes\xe2 \x82 \xac ' ,))
19331945
19341946 self .tv .selection_set ()
19351947 self .assertEqual (self .tv .selection (), ())
@@ -1978,14 +1990,19 @@ def test_virtual_events(self):
19781990 def test_set (self ):
19791991 self .tv ['columns' ] = ['A' , 'B' ]
19801992 item = self .tv .insert ('' , 'end' , values = ['a' , 'b' ])
1981- self .assertEqual (self .tv .set (item ), {'A' : 'a' , 'B' : 'b' })
1993+ values = self .tv .set (item )
1994+ if tk_version >= (9 , 1 ):
1995+ self .assertEqual (values .pop ('#0' ), '' )
1996+ self .assertEqual (values , {'A' : 'a' , 'B' : 'b' })
19821997
19831998 self .tv .set (item , 'B' , 'a' )
19841999 self .assertEqual (self .tv .item (item , values = None ),
19852000 ('a' , 'a' ) if self .wantobjects else 'a a' )
19862001
19872002 self .tv ['columns' ] = ['B' ]
1988- self .assertEqual (self .tv .set (item ), {'B' : 'a' })
2003+ values = self .tv .set (item )
2004+ values .pop ('#0' , None )
2005+ self .assertEqual (values , {'B' : 'a' })
19892006
19902007 self .tv .set (item , 'B' , 'b' )
19912008 self .assertEqual (self .tv .set (item , column = 'B' ), 'b' )
@@ -1997,7 +2014,9 @@ def test_set(self):
19972014 123 if self .wantobjects else '123' )
19982015 self .assertEqual (self .tv .item (item , values = None ),
19992016 (123 , 'a' ) if self .wantobjects else '123 a' )
2000- self .assertEqual (self .tv .set (item ),
2017+ values = self .tv .set (item )
2018+ values .pop ('#0' , None )
2019+ self .assertEqual (values ,
20012020 {'B' : 123 } if self .wantobjects else {'B' : '123' })
20022021
20032022 # inexistent column
0 commit comments