Issue #21477: Add htests for Search and Replace dialogs.

Patch by Saimadhav Heblikar.
This commit is contained in:
Terry Jan Reedy 2014-05-27 03:30:54 -04:00
parent aa7886dd3f
commit 0a4d13e87e
4 changed files with 73 additions and 15 deletions

View file

@ -188,3 +188,34 @@ class ReplaceDialog(SearchDialogBase):
def close(self, event=None): def close(self, event=None):
SearchDialogBase.close(self, event) SearchDialogBase.close(self, event)
self.text.tag_remove("hit", "1.0", "end") 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)

View file

@ -65,3 +65,25 @@ class SearchDialog(SearchDialogBase):
if pat: if pat:
self.engine.setcookedpat(pat) self.engine.setcookedpat(pat)
return self.find_again(text) 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)

View file

@ -453,20 +453,11 @@ def _tree_widget(parent):
root.title("Test TreeWidget") root.title("Test TreeWidget")
width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) width, height, x, y = list(map(int, re.split('[x+]', parent.geometry())))
root.geometry("+%d+%d"%(x, y + 150)) root.geometry("+%d+%d"%(x, y + 150))
# test with scrollable canvas
sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1) sc = ScrolledCanvas(root, bg="white", highlightthickness=0, takefocus=1)
sc.frame.pack(expand=1, fill="both", side=LEFT) sc.frame.pack(expand=1, fill="both", side=LEFT)
item = FileTreeItem(os.getcwd()) item = FileTreeItem(os.getcwd())
node = TreeNode(sc.canvas, None, item) node = TreeNode(sc.canvas, None, item)
node.expand() 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() root.mainloop()
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -54,9 +54,9 @@ _class_browser_spec = {
'kwds': {}, 'kwds': {},
'msg': "Inspect names of module, class(with superclass if " 'msg': "Inspect names of module, class(with superclass if "
"applicable), methods and functions.\nToggle nested items.\n" "applicable), methods and functions.\nToggle nested items.\n"
"Double clicking on items prints a traceback print a traceback " "Double clicking on items prints a traceback for an exception "
"for an exception that is ignored." "that is ignored."
} }
_color_delegator_spec = { _color_delegator_spec = {
'file': 'ColorDelegator', 'file': 'ColorDelegator',
@ -181,6 +181,22 @@ _percolator_spec = {
"Test for actions like text entry, and removal." "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 = { _scrolled_list_spec = {
'file': 'ScrolledList', 'file': 'ScrolledList',
'kwds': {}, 'kwds': {},
@ -227,9 +243,7 @@ _tooltip_spec = {
_tree_widget_spec = { _tree_widget_spec = {
'file': 'TreeWidget', 'file': 'TreeWidget',
'kwds': {}, 'kwds': {},
'msg': "You should see two canvases side-by-side.\n" 'msg': "The canvas is scrollable.\n"
"The left canvas is scrollable.\n"
"The right canvas is not scrollable.\n"
"Click on folders upto to the lowest level." "Click on folders upto to the lowest level."
} }