@@ -1486,6 +1486,57 @@ def test_insert_item(self):
14861486 value )
14871487
14881488
1489+ def test_selection (self ):
1490+ # item 'none' doesn't exist
1491+ self .assertRaises (tkinter .TclError , self .tv .selection_set , 'none' )
1492+ self .assertRaises (tkinter .TclError , self .tv .selection_add , 'none' )
1493+ self .assertRaises (tkinter .TclError , self .tv .selection_remove , 'none' )
1494+ self .assertRaises (tkinter .TclError , self .tv .selection_toggle , 'none' )
1495+
1496+ item1 = self .tv .insert ('' , 'end' )
1497+ item2 = self .tv .insert ('' , 'end' )
1498+ c1 = self .tv .insert (item1 , 'end' )
1499+ c2 = self .tv .insert (item1 , 'end' )
1500+ c3 = self .tv .insert (item1 , 'end' )
1501+ self .assertEqual (self .tv .selection (), ())
1502+
1503+ self .tv .selection_set ((c1 , item2 ))
1504+ self .assertEqual (self .tv .selection (), (c1 , item2 ))
1505+ self .tv .selection_set (c2 )
1506+ self .assertEqual (self .tv .selection (), (c2 ,))
1507+
1508+ self .tv .selection_add ((c1 , item2 ))
1509+ self .assertEqual (self .tv .selection (), (c1 , c2 , item2 ))
1510+ self .tv .selection_add (item1 )
1511+ self .assertEqual (self .tv .selection (), (item1 , c1 , c2 , item2 ))
1512+
1513+ self .tv .selection_remove ((item1 , c3 ))
1514+ self .assertEqual (self .tv .selection (), (c1 , c2 , item2 ))
1515+ self .tv .selection_remove (c2 )
1516+ self .assertEqual (self .tv .selection (), (c1 , item2 ))
1517+
1518+ self .tv .selection_toggle ((c1 , c3 ))
1519+ self .assertEqual (self .tv .selection (), (c3 , item2 ))
1520+ self .tv .selection_toggle (item2 )
1521+ self .assertEqual (self .tv .selection (), (c3 ,))
1522+
1523+ self .tv .insert ('' , 'end' , id = 'with spaces' )
1524+ self .tv .selection_set ('with spaces' )
1525+ self .assertEqual (self .tv .selection (), ('with spaces' ,))
1526+
1527+ self .tv .insert ('' , 'end' , id = '{brace' )
1528+ self .tv .selection_set ('{brace' )
1529+ self .assertEqual (self .tv .selection (), ('{brace' ,))
1530+
1531+ self .tv .insert ('' , 'end' , id = 'unicode\u20ac ' )
1532+ self .tv .selection_set ('unicode\u20ac ' )
1533+ self .assertEqual (self .tv .selection (), ('unicode\u20ac ' ,))
1534+
1535+ self .tv .insert ('' , 'end' , id = b'bytes\xe2 \x82 \xac ' )
1536+ self .tv .selection_set (b'bytes\xe2 \x82 \xac ' )
1537+ self .assertEqual (self .tv .selection (), ('bytes\xe2 \x82 \xac ' ,))
1538+
1539+
14891540 def test_set (self ):
14901541 self .tv ['columns' ] = ['A' , 'B' ]
14911542 item = self .tv .insert ('' , 'end' , values = ['a' , 'b' ])
0 commit comments