From 0a4d13e87e0272085ed920b284f7245f01137cb3 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Tue, 27 May 2014 03:30:54 -0400 Subject: Issue #21477: Add htests for Search and Replace dialogs. Patch by Saimadhav Heblikar. --- Lib/idlelib/ReplaceDialog.py | 31 +++++++++++++++++++++++++++++++ Lib/idlelib/SearchDialog.py | 22 ++++++++++++++++++++++ Lib/idlelib/TreeWidget.py | 9 --------- Lib/idlelib/idle_test/htest.py | 26 ++++++++++++++++++++------ 4 files changed, 73 insertions(+), 15 deletions(-) diff --git a/Lib/idlelib/ReplaceDialog.py b/Lib/idlelib/ReplaceDialog.py index e73f2c5..ffa97a2 100644 --- a/Lib/idlelib/ReplaceDialog.py +++ b/Lib/idlelib/ReplaceDialog.py @@ -188,3 +188,34 @@ class ReplaceDialog(SearchDialogBase): def close(self, event=None): SearchDialogBase.close(self, event) self.text.tag_remove("hit", "1.0", "end") + +def _replace_dialog(parent): + root = Tk() + root.title("Test ReplaceDialog") + width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) + root.geometry("+%d+%d"%(x, y + 150)) + + # mock undo delegator methods + def undo_block_start(): + pass + + def undo_block_stop(): + pass + + text = Text(root) + text.undo_block_start = undo_block_start + text.undo_block_stop = undo_block_stop + text.pack() + text.insert("insert","This is a sample string.\n"*10) + + def show_replace(): + text.tag_add(SEL, "1.0", END) + replace(text) + text.tag_remove(SEL, "1.0", END) + + button = Button(root, text="Replace", command=show_replace) + button.pack() + +if __name__ == '__main__': + from idlelib.idle_test.htest import run + run(_replace_dialog) diff --git a/Lib/idlelib/SearchDialog.py b/Lib/idlelib/SearchDialog.py index bf76c41..38408b8 100644 --- a/Lib/idlelib/SearchDialog.py +++ b/Lib/idlelib/SearchDialog.py @@ -65,3 +65,25 @@ class SearchDialog(SearchDialogBase): if pat: self.engine.setcookedpat(pat) return self.find_again(text) + +def _search_dialog(parent): + root = Tk() + root.title("Test SearchDialog") + width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) + root.geometry("+%d+%d"%(x, y + 150)) + text = Text(root) + text.pack() + text.insert("insert","This is a sample string.\n"*10) + + def show_find(): + text.tag_add(SEL, "1.0", END) + s = _setup(text) + s.open(text) + text.tag_remove(SEL, "1.0", END) + + button = Button(root, text="Search", command=show_find) + button.pack() + +if __name__ == '__main__': + from idlelib.idle_test.htest import run + run(_search_dialog) diff --git a/Lib/idlelib/TreeWidget.py b/Lib/idlelib/TreeWidget.py index 2ae6555..f05011d 100644 --- a/Lib/idlelib/TreeWidget.py +++ b/Lib/idlelib/TreeWidget.py @@ -453,20 +453,11 @@ def _tree_widget(parent): root.title("Test TreeWidget") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) root.geometry("+%d+%d"%(x, y + 150)) - # test with scrollable canvas sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1) sc.frame.pack(expand=1, fill="both", side=LEFT) item = FileTreeItem(os.getcwd()) node = TreeNode(sc.canvas, None, item) node.expand() - - # test without scrollable canvas - canvas = Canvas(root, bg="white", highlightthickness=0) - canvas.pack(expand=0, fill="both", side=RIGHT) - item = FileTreeItem(os.getcwd()) - node = TreeNode(canvas, None, item) - node.update() - root.mainloop() if __name__ == '__main__': diff --git a/Lib/idlelib/idle_test/htest.py b/Lib/idlelib/idle_test/htest.py index c5101ff..af9cb3d 100644 --- a/Lib/idlelib/idle_test/htest.py +++ b/Lib/idlelib/idle_test/htest.py @@ -54,9 +54,9 @@ _class_browser_spec = { 'kwds': {}, 'msg': "Inspect names of module, class(with superclass if " "applicable), methods and functions.\nToggle nested items.\n" - "Double clicking on items prints a traceback print a traceback " - "for an exception that is ignored." - } + "Double clicking on items prints a traceback for an exception " + "that is ignored." + } _color_delegator_spec = { 'file': 'ColorDelegator', @@ -181,6 +181,22 @@ _percolator_spec = { "Test for actions like text entry, and removal." } +_replace_dialog_spec = { + 'file': 'ReplaceDialog', + 'kwds': {}, + 'msg': "Click the 'Replace' button.\n" + "Test various replace options in the 'Replace dialog'.\n" + "Click [Close] or [X] to close to the 'Replace Dialog'." + } + +_search_dialog_spec = { + 'file': 'SearchDialog', + 'kwds': {}, + 'msg': "Click the 'Search' button.\n" + "Test various search options in the 'Search dialog'.\n" + "Click [Close] or [X] to close to the 'Search Dialog'." + } + _scrolled_list_spec = { 'file': 'ScrolledList', 'kwds': {}, @@ -227,9 +243,7 @@ _tooltip_spec = { _tree_widget_spec = { 'file': 'TreeWidget', 'kwds': {}, - 'msg': "You should see two canvases side-by-side.\n" - "The left canvas is scrollable.\n" - "The right canvas is not scrollable.\n" + 'msg': "The canvas is scrollable.\n" "Click on folders upto to the lowest level." } -- cgit v0.12