From 1b3892243433da7eae7f5f3a4f98f13d309c8926 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Wed, 17 Jul 2019 20:48:36 -0400 Subject: bpo-36390: Gather IDLE Format menu functions into format.py (#14827) Add two indent spec methods from editor and Rstrip to existing file. Tests are not added for indent methods because they need change in lights of 3.x's prohibition on mixing tabs and spaces. --- Lib/idlelib/idle_test/test_format.py | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'Lib/idlelib/idle_test/test_format.py') diff --git a/Lib/idlelib/idle_test/test_format.py b/Lib/idlelib/idle_test/test_format.py index a2d27ed69dd..c7b123e9d51 100644 --- a/Lib/idlelib/idle_test/test_format.py +++ b/Lib/idlelib/idle_test/test_format.py @@ -6,6 +6,7 @@ from unittest import mock from test.support import requires from tkinter import Tk, Text from idlelib.editor import EditorWindow +from idlelib.idle_test.mock_idle import Editor as MockEditor class Is_Get_Test(unittest.TestCase): @@ -573,5 +574,50 @@ class C1(): self.assertEqual(ask(), 10) +class rstripTest(unittest.TestCase): + + def test_rstrip_line(self): + editor = MockEditor() + text = editor.text + do_rstrip = ft.Rstrip(editor).do_rstrip + eq = self.assertEqual + + do_rstrip() + eq(text.get('1.0', 'insert'), '') + text.insert('1.0', ' ') + do_rstrip() + eq(text.get('1.0', 'insert'), '') + text.insert('1.0', ' \n') + do_rstrip() + eq(text.get('1.0', 'insert'), '\n') + + def test_rstrip_multiple(self): + editor = MockEditor() + # Comment above, uncomment 3 below to test with real Editor & Text. + #from idlelib.editor import EditorWindow as Editor + #from tkinter import Tk + #editor = Editor(root=Tk()) + text = editor.text + do_rstrip = ft.Rstrip(editor).do_rstrip + + original = ( + "Line with an ending tab \n" + "Line ending in 5 spaces \n" + "Linewithnospaces\n" + " indented line\n" + " indented line with trailing space \n" + " ") + stripped = ( + "Line with an ending tab\n" + "Line ending in 5 spaces\n" + "Linewithnospaces\n" + " indented line\n" + " indented line with trailing space\n") + + text.insert('1.0', original) + do_rstrip() + self.assertEqual(text.get('1.0', 'insert'), stripped) + + if __name__ == '__main__': unittest.main(verbosity=2, exit=2) -- cgit v1.2.3