@@ -1504,8 +1504,13 @@ def test_configure_height(self):
15041504
15051505 def test_configure_selectmode (self ):
15061506 widget = self .create ()
1507- self .checkEnumParam (widget , 'selectmode' ,
1508- 'none' , 'browse' , 'extended' )
1507+ if tk_version >= (9 , 1 ):
1508+ self .checkEnumParam (widget , 'selectmode' ,
1509+ 'none' , 'single' , 'browse' , 'extended' ,
1510+ 'multiple' )
1511+ else :
1512+ self .checkEnumParam (widget , 'selectmode' ,
1513+ 'none' , 'browse' , 'extended' )
15091514
15101515 @requires_tk (8 , 7 )
15111516 def test_configure_selecttype (self ):
@@ -1788,6 +1793,9 @@ def simulate_heading_click(x, y):
17881793 commands = self .tv .master ._tclCommands
17891794 self .tv .heading ('#0' , command = str (self .tv .heading ('#0' , command = None )))
17901795 self .assertEqual (commands , self .tv .master ._tclCommands )
1796+ # Click elsewhere first, so the second heading click is not reported
1797+ # as a double click (which does not invoke the command).
1798+ simulate_mouse_click (self .tv , 5 , 50 )
17911799 simulate_heading_click (5 , 5 )
17921800 if not success :
17931801 self .fail ("The command associated to the treeview heading wasn't "
@@ -1896,10 +1904,11 @@ def test_insert_item(self):
18961904 value )
18971905
18981906 # test for values which are not None
1907+ keep_type = self .wantobjects and tk_version >= (9 , 1 )
18991908 itemid = self .tv .insert ('' , 'end' , 0 )
1900- self .assertEqual (itemid , '0' )
1909+ self .assertEqual (itemid , 0 if keep_type else '0' )
19011910 itemid = self .tv .insert ('' , 'end' , 0.0 )
1902- self .assertEqual (itemid , '0.0' )
1911+ self .assertEqual (itemid , 0.0 if keep_type else '0.0' )
19031912 # this is because False resolves to 0 and element with 0 iid is already present
19041913 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , False )
19051914 self .assertRaises (tkinter .TclError , self .tv .insert , '' , 'end' , '' )
@@ -1959,7 +1968,10 @@ def test_selection(self):
19591968
19601969 self .tv .insert ('' , 'end' , id = b'bytes\xe2 \x82 \xac ' )
19611970 self .tv .selection_set (b'bytes\xe2 \x82 \xac ' )
1962- self .assertEqual (self .tv .selection (), ('bytes\xe2 \x82 \xac ' ,))
1971+ self .assertEqual (self .tv .selection (),
1972+ (b'bytes\xe2 \x82 \xac ' ,)
1973+ if self .wantobjects and tk_version >= (9 , 1 )
1974+ else ('bytes\xe2 \x82 \xac ' ,))
19631975
19641976 self .tv .selection_set ()
19651977 self .assertEqual (self .tv .selection (), ())
@@ -2008,14 +2020,19 @@ def test_virtual_events(self):
20082020 def test_set (self ):
20092021 self .tv ['columns' ] = ['A' , 'B' ]
20102022 item = self .tv .insert ('' , 'end' , values = ['a' , 'b' ])
2011- self .assertEqual (self .tv .set (item ), {'A' : 'a' , 'B' : 'b' })
2023+ values = self .tv .set (item )
2024+ if tk_version >= (9 , 1 ):
2025+ self .assertEqual (values .pop ('#0' ), '' )
2026+ self .assertEqual (values , {'A' : 'a' , 'B' : 'b' })
20122027
20132028 self .tv .set (item , 'B' , 'a' )
20142029 self .assertEqual (self .tv .item (item , values = None ),
20152030 ('a' , 'a' ) if self .wantobjects else 'a a' )
20162031
20172032 self .tv ['columns' ] = ['B' ]
2018- self .assertEqual (self .tv .set (item ), {'B' : 'a' })
2033+ values = self .tv .set (item )
2034+ values .pop ('#0' , None )
2035+ self .assertEqual (values , {'B' : 'a' })
20192036
20202037 self .tv .set (item , 'B' , 'b' )
20212038 self .assertEqual (self .tv .set (item , column = 'B' ), 'b' )
@@ -2027,7 +2044,9 @@ def test_set(self):
20272044 123 if self .wantobjects else '123' )
20282045 self .assertEqual (self .tv .item (item , values = None ),
20292046 (123 , 'a' ) if self .wantobjects else '123 a' )
2030- self .assertEqual (self .tv .set (item ),
2047+ values = self .tv .set (item )
2048+ values .pop ('#0' , None )
2049+ self .assertEqual (values ,
20312050 {'B' : 123 } if self .wantobjects else {'B' : '123' })
20322051
20332052 # inexistent column
0 commit comments