1c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedyimport unittest 2c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedyimport idlelib.RstripExtension as rs 3c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedyfrom idlelib.idle_test.mock_idle import Editor 4c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy 5c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedyclass rstripTest(unittest.TestCase): 6c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy 7c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy def test_rstrip_line(self): 8c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy editor = Editor() 9c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy text = editor.text 10c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy do_rstrip = rs.RstripExtension(editor).do_rstrip 11c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy 12c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy do_rstrip() 13c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy self.assertEqual(text.get('1.0', 'insert'), '') 14c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy text.insert('1.0', ' ') 15c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy do_rstrip() 16c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy self.assertEqual(text.get('1.0', 'insert'), '') 17c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy text.insert('1.0', ' \n') 18c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy do_rstrip() 19c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy self.assertEqual(text.get('1.0', 'insert'), '\n') 20c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy 21c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy def test_rstrip_multiple(self): 22c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy editor = Editor() 23c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy # Uncomment following to verify that test passes with real widgets. 24c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy## from idlelib.EditorWindow import EditorWindow as Editor 25c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy## from tkinter import Tk 26c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy## editor = Editor(root=Tk()) 27c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy text = editor.text 28c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy do_rstrip = rs.RstripExtension(editor).do_rstrip 29c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy 30c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy original = ( 31c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy "Line with an ending tab \n" 32c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy "Line ending in 5 spaces \n" 33c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy "Linewithnospaces\n" 34c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy " indented line\n" 35c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy " indented line with trailing space \n" 36c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy " ") 37c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy stripped = ( 38c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy "Line with an ending tab\n" 39c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy "Line ending in 5 spaces\n" 40c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy "Linewithnospaces\n" 41c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy " indented line\n" 42c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy " indented line with trailing space\n") 43c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy 44c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy text.insert('1.0', original) 45c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy do_rstrip() 46c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy self.assertEqual(text.get('1.0', 'insert'), stripped) 47c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy 48c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedyif __name__ == '__main__': 49c8a198ce0297139b6dabeddca15919f8680e35faTerry Jan Reedy unittest.main(verbosity=2, exit=False) 50