@@ -1500,8 +1500,13 @@ def test_configure_height(self):
15001500
15011501 def test_configure_selectmode (self ):
15021502 widget = self .create ()
1503- self .checkEnumParam (widget , 'selectmode' ,
1504- 'none' , 'browse' , 'extended' )
1503+ if tk_version >= (9 , 1 ):
1504+ self .checkEnumParam (widget , 'selectmode' ,
1505+ 'none' , 'single' , 'browse' , 'extended' ,
1506+ 'multiple' )
1507+ else :
1508+ self .checkEnumParam (widget , 'selectmode' ,
1509+ 'none' , 'browse' , 'extended' )
15051510
15061511 @requires_tk (8 , 7 )
15071512 def test_configure_selecttype (self ):
@@ -1784,6 +1789,9 @@ def simulate_heading_click(x, y):
17841789 commands = self .tv .master ._tclCommands
17851790 self .tv .heading ('#0' , command = str (self .tv .heading ('#0' , command = None )))
17861791 self .assertEqual (commands , self .tv .master ._tclCommands )
1792+ # Click elsewhere first, so the second heading click is not reported
1793+ # as a double click (which does not invoke the command).
1794+ simulate_mouse_click (self .tv , 5 , 50 )
17871795 simulate_heading_click (5 , 5 )
17881796 if not success :
17891797 self .fail ("The command associated to the treeview heading wasn't "
@@ -1892,10 +1900,11 @@ def test_insert_item(self):
18921900 value )
18931901
18941902 # test for values which are not None
1903+ keep_type = self .wantobjects and tk_version >= (9 , 1 )
18951904 itemid = self .tv .insert ('' , 'end' , 0 )
1896- self .assertEqual (itemid , '0' )
1905+ self .assertEqual (itemid , 0 if keep_type else '0' )
18971906 itemid = self .tv .insert ('' , 'end' , 0.0 )
1898- self .assertEqual (itemid , '0.0' )
1907+ self .assertEqual (itemid , 0.0 if keep_type else '0.0' )
18991908 # this is because False resolves to 0 and element with 0 iid is already present
19001909 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , False )
19011910 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , '' )
@@ -1955,7 +1964,10 @@ def test_selection(self):
19551964
19561965 self .tv .insert ('' , 'end' , id = b'bytes\xe2 \x82 \xac ' )
19571966 self .tv .selection_set (b'bytes\xe2 \x82 \xac ' )
1958- self .assertEqual (self .tv .selection (), ('bytes\xe2 \x82 \xac ' ,))
1967+ self .assertEqual (self .tv .selection (),
1968+ (b'bytes\xe2 \x82 \xac ' ,)
1969+ if self .wantobjects and tk_version >= (9 , 1 )
1970+ else ('bytes\xe2 \x82 \xac ' ,))
19591971
19601972 self .tv .selection_set ()
19611973 self .assertEqual (self .tv .selection (), ())
@@ -2004,14 +2016,19 @@ def test_virtual_events(self):
20042016 def test_set (self ):
20052017 self .tv ['columns' ] = ['A' , 'B' ]
20062018 item = self .tv .insert ('' , 'end' , values = ['a' , 'b' ])
2007- self .assertEqual (self .tv .set (item ), {'A' : 'a' , 'B' : 'b' })
2019+ values = self .tv .set (item )
2020+ if tk_version >= (9 , 1 ):
2021+ self .assertEqual (values .pop ('#0' ), '' )
2022+ self .assertEqual (values , {'A' : 'a' , 'B' : 'b' })
20082023
20092024 self .tv .set (item , 'B' , 'a' )
20102025 self .assertEqual (self .tv .item (item , values = None ),
20112026 ('a' , 'a' ) if self .wantobjects else 'a a' )
20122027
20132028 self .tv ['columns' ] = ['B' ]
2014- self .assertEqual (self .tv .set (item ), {'B' : 'a' })
2029+ values = self .tv .set (item )
2030+ values .pop ('#0' , None )
2031+ self .assertEqual (values , {'B' : 'a' })
20152032
20162033 self .tv .set (item , 'B' , 'b' )
20172034 self .assertEqual (self .tv .set (item , column = 'B' ), 'b' )
@@ -2023,7 +2040,9 @@ def test_set(self):
20232040 123 if self .wantobjects else '123' )
20242041 self .assertEqual (self .tv .item (item , values = None ),
20252042 (123 , 'a' ) if self .wantobjects else '123 a' )
2026- self .assertEqual (self .tv .set (item ),
2043+ values = self .tv .set (item )
2044+ values .pop ('#0' , None )
2045+ self .assertEqual (values ,
20272046 {'B' : 123 } if self .wantobjects else {'B' : '123' })
20282047
20292048 # inexistent column
0 commit comments