@@ -1486,6 +1486,57 @@ def test_insert_item(self):
1486
1486
value )
1487
1487
1488
1488
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
+
1489
1540
def test_set (self ):
1490
1541
self .tv ['columns' ] = ['A' , 'B' ]
1491
1542
item = self .tv .insert ('' , 'end' , values = ['a' , 'b' ])
0 commit comments