@@ -1465,8 +1465,13 @@ def test_configure_height(self):
14651465
14661466 def test_configure_selectmode (self ):
14671467 widget = self .create ()
1468- self .checkEnumParam (widget , 'selectmode' ,
1469- 'none' , 'browse' , 'extended' )
1468+ if tk_version >= (9 , 1 ):
1469+ self .checkEnumParam (widget , 'selectmode' ,
1470+ 'none' , 'single' , 'browse' , 'extended' ,
1471+ 'multiple' )
1472+ else :
1473+ self .checkEnumParam (widget , 'selectmode' ,
1474+ 'none' , 'browse' , 'extended' )
14701475
14711476 @requires_tk (8 , 7 )
14721477 def test_configure_selecttype (self ):
@@ -1749,6 +1754,9 @@ def simulate_heading_click(x, y):
17491754 commands = self .tv .master ._tclCommands
17501755 self .tv .heading ('#0' , command = str (self .tv .heading ('#0' , command = None )))
17511756 self .assertEqual (commands , self .tv .master ._tclCommands )
1757+ # Click elsewhere first, so the second heading click is not reported
1758+ # as a double click (which does not invoke the command).
1759+ simulate_mouse_click (self .tv , 5 , 50 )
17521760 simulate_heading_click (5 , 5 )
17531761 if not success :
17541762 self .fail ("The command associated to the treeview heading wasn't "
@@ -1857,10 +1865,11 @@ def test_insert_item(self):
18571865 value )
18581866
18591867 # test for values which are not None
1868+ keep_type = self .wantobjects and tk_version >= (9 , 1 )
18601869 itemid = self .tv .insert ('' , 'end' , 0 )
1861- self .assertEqual (itemid , '0' )
1870+ self .assertEqual (itemid , 0 if keep_type else '0' )
18621871 itemid = self .tv .insert ('' , 'end' , 0.0 )
1863- self .assertEqual (itemid , '0.0' )
1872+ self .assertEqual (itemid , 0.0 if keep_type else '0.0' )
18641873 # this is because False resolves to 0 and element with 0 iid is already present
18651874 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , False )
18661875 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , '' )
@@ -1920,7 +1929,10 @@ def test_selection(self):
19201929
19211930 self .tv .insert ('' , 'end' , id = b'bytes\xe2 \x82 \xac ' )
19221931 self .tv .selection_set (b'bytes\xe2 \x82 \xac ' )
1923- self .assertEqual (self .tv .selection (), ('bytes\xe2 \x82 \xac ' ,))
1932+ self .assertEqual (self .tv .selection (),
1933+ (b'bytes\xe2 \x82 \xac ' ,)
1934+ if self .wantobjects and tk_version >= (9 , 1 )
1935+ else ('bytes\xe2 \x82 \xac ' ,))
19241936
19251937 self .tv .selection_set ()
19261938 self .assertEqual (self .tv .selection (), ())
@@ -1969,14 +1981,19 @@ def test_virtual_events(self):
19691981 def test_set (self ):
19701982 self .tv ['columns' ] = ['A' , 'B' ]
19711983 item = self .tv .insert ('' , 'end' , values = ['a' , 'b' ])
1972- self .assertEqual (self .tv .set (item ), {'A' : 'a' , 'B' : 'b' })
1984+ values = self .tv .set (item )
1985+ if tk_version >= (9 , 1 ):
1986+ self .assertEqual (values .pop ('#0' ), '' )
1987+ self .assertEqual (values , {'A' : 'a' , 'B' : 'b' })
19731988
19741989 self .tv .set (item , 'B' , 'a' )
19751990 self .assertEqual (self .tv .item (item , values = None ),
19761991 ('a' , 'a' ) if self .wantobjects else 'a a' )
19771992
19781993 self .tv ['columns' ] = ['B' ]
1979- self .assertEqual (self .tv .set (item ), {'B' : 'a' })
1994+ values = self .tv .set (item )
1995+ values .pop ('#0' , None )
1996+ self .assertEqual (values , {'B' : 'a' })
19801997
19811998 self .tv .set (item , 'B' , 'b' )
19821999 self .assertEqual (self .tv .set (item , column = 'B' ), 'b' )
@@ -1988,7 +2005,9 @@ def test_set(self):
19882005 123 if self .wantobjects else '123' )
19892006 self .assertEqual (self .tv .item (item , values = None ),
19902007 (123 , 'a' ) if self .wantobjects else '123 a' )
1991- self .assertEqual (self .tv .set (item ),
2008+ values = self .tv .set (item )
2009+ values .pop ('#0' , None )
2010+ self .assertEqual (values ,
19922011 {'B' : 123 } if self .wantobjects else {'B' : '123' })
19932012
19942013 # inexistent column
0 commit comments