diff --git a/Lib/idlelib/idle_test/test_sidebar.py b/Lib/idlelib/idle_test/test_sidebar.py index 8c98a0c0cbdeca..07e8f2e96b9042 100644 --- a/Lib/idlelib/idle_test/test_sidebar.py +++ b/Lib/idlelib/idle_test/test_sidebar.py @@ -1,4 +1,6 @@ """Test sidebar, coverage 93%""" +import idlelib.sidebar +from sys import platform from itertools import chain import unittest import unittest.mock @@ -7,7 +9,6 @@ from idlelib.delegator import Delegator from idlelib.percolator import Percolator -import idlelib.sidebar class Dummy_editwin: @@ -239,6 +240,7 @@ def get_width(): self.assert_sidebar_n_lines(1) self.assertEqual(get_width(), 1) + @unittest.skipIf(platform == 'darwin', 'test tk version dependent') def test_click_selection(self): self.linenumber.show_sidebar() self.text.insert('1.0', 'one\ntwo\nthree\nfour\n') @@ -252,14 +254,15 @@ def test_click_selection(self): self.assertEqual(self.get_selection(), ('2.0', '3.0')) - def test_drag_selection(self): + @unittest.skipIf(platform == 'darwin', 'test tk version dependent') + def test_drag_selection_down(self): self.linenumber.show_sidebar() - self.text.insert('1.0', 'one\ntwo\nthree\nfour\n') + self.text.insert('1.0', 'one\ntwo\nthree\nfour\nfive\n') self.root.update() - # Drag from the first line to the third line. - start_x, start_y = self.get_line_screen_position(1) - end_x, end_y = self.get_line_screen_position(3) + # Drag from the second line to the fourth line. + start_x, start_y = self.get_line_screen_position(2) + end_x, end_y = self.get_line_screen_position(4) self.linenumber.sidebar_text.event_generate('', x=start_x, y=start_y) self.linenumber.sidebar_text.event_generate('', @@ -269,8 +272,27 @@ def test_drag_selection(self): self.linenumber.sidebar_text.event_generate('', x=end_x, y=end_y) self.root.update() + self.assertEqual(self.get_selection(), ('2.0', '5.0')) + + @unittest.skipIf(platform == 'darwin', 'test tk version dependent') + def test_drag_selection_up(self): + self.linenumber.show_sidebar() + self.text.insert('1.0', 'one\ntwo\nthree\nfour\nfive\n') + self.root.update() - self.assertEqual(self.get_selection(), ('1.0', '4.0')) + # Drag from the fourth line to the second line. + start_x, start_y = self.get_line_screen_position(4) + end_x, end_y = self.get_line_screen_position(2) + self.linenumber.sidebar_text.event_generate('', + x=start_x, y=start_y) + self.linenumber.sidebar_text.event_generate('', + x=start_x, y=start_y) + self.linenumber.sidebar_text.event_generate('', + x=end_x, y=end_y) + self.linenumber.sidebar_text.event_generate('', + x=end_x, y=end_y) + self.root.update() + self.assertEqual(self.get_selection(), ('2.0', '5.0')) def test_scroll(self): self.linenumber.show_sidebar()