1
1
"""Test sidebar, coverage 93%"""
2
+ import idlelib .sidebar
3
+ from sys import platform
2
4
from itertools import chain
3
5
import unittest
4
6
import unittest .mock
7
9
8
10
from idlelib .delegator import Delegator
9
11
from idlelib .percolator import Percolator
10
- import idlelib .sidebar
11
12
12
13
13
14
class Dummy_editwin :
@@ -239,6 +240,7 @@ def get_width():
239
240
self .assert_sidebar_n_lines (1 )
240
241
self .assertEqual (get_width (), 1 )
241
242
243
+ @unittest .skipIf (platform == 'darwin' , 'test tk version dependent' )
242
244
def test_click_selection (self ):
243
245
self .linenumber .show_sidebar ()
244
246
self .text .insert ('1.0' , 'one\n two\n three\n four\n ' )
@@ -252,14 +254,15 @@ def test_click_selection(self):
252
254
253
255
self .assertEqual (self .get_selection (), ('2.0' , '3.0' ))
254
256
255
- def test_drag_selection (self ):
257
+ @unittest .skipIf (platform == 'darwin' , 'test tk version dependent' )
258
+ def test_drag_selection_down (self ):
256
259
self .linenumber .show_sidebar ()
257
- self .text .insert ('1.0' , 'one\n two\n three\n four\n ' )
260
+ self .text .insert ('1.0' , 'one\n two\n three\n four\n five \ n ' )
258
261
self .root .update ()
259
262
260
- # Drag from the first line to the third line.
261
- start_x , start_y = self .get_line_screen_position (1 )
262
- end_x , end_y = self .get_line_screen_position (3 )
263
+ # Drag from the second line to the fourth line.
264
+ start_x , start_y = self .get_line_screen_position (2 )
265
+ end_x , end_y = self .get_line_screen_position (4 )
263
266
self .linenumber .sidebar_text .event_generate ('<Button-1>' ,
264
267
x = start_x , y = start_y )
265
268
self .linenumber .sidebar_text .event_generate ('<B1-Motion>' ,
@@ -269,8 +272,27 @@ def test_drag_selection(self):
269
272
self .linenumber .sidebar_text .event_generate ('<ButtonRelease-1>' ,
270
273
x = end_x , y = end_y )
271
274
self .root .update ()
275
+ self .assertEqual (self .get_selection (), ('2.0' , '5.0' ))
276
+
277
+ @unittest .skipIf (platform == 'darwin' , 'test tk version dependent' )
278
+ def test_drag_selection_up (self ):
279
+ self .linenumber .show_sidebar ()
280
+ self .text .insert ('1.0' , 'one\n two\n three\n four\n five\n ' )
281
+ self .root .update ()
272
282
273
- self .assertEqual (self .get_selection (), ('1.0' , '4.0' ))
283
+ # Drag from the fourth line to the second line.
284
+ start_x , start_y = self .get_line_screen_position (4 )
285
+ end_x , end_y = self .get_line_screen_position (2 )
286
+ self .linenumber .sidebar_text .event_generate ('<Button-1>' ,
287
+ x = start_x , y = start_y )
288
+ self .linenumber .sidebar_text .event_generate ('<B1-Motion>' ,
289
+ x = start_x , y = start_y )
290
+ self .linenumber .sidebar_text .event_generate ('<B1-Motion>' ,
291
+ x = end_x , y = end_y )
292
+ self .linenumber .sidebar_text .event_generate ('<ButtonRelease-1>' ,
293
+ x = end_x , y = end_y )
294
+ self .root .update ()
295
+ self .assertEqual (self .get_selection (), ('2.0' , '5.0' ))
274
296
275
297
def test_scroll (self ):
276
298
self .linenumber .show_sidebar ()
0 commit comments