golden hour
/opt/alt/python37/lib64/python3.7/idlelib/idle_test
⬆️ Go Up
Upload
File/Folder
Size
Actions
README.txt
8.52 KB
Del
OK
__init__.py
712 B
Del
OK
__pycache__
-
Del
OK
htest.py
14.83 KB
Del
OK
mock_idle.py
1.9 KB
Del
OK
mock_tk.py
11.35 KB
Del
OK
template.py
642 B
Del
OK
test_autocomplete.py
10.47 KB
Del
OK
test_autocomplete_w.py
709 B
Del
OK
test_autoexpand.py
4.53 KB
Del
OK
test_browser.py
7.78 KB
Del
OK
test_calltip.py
9.7 KB
Del
OK
test_calltip_w.py
686 B
Del
OK
test_codecontext.py
15.74 KB
Del
OK
test_colorizer.py
14.67 KB
Del
OK
test_config.py
31.29 KB
Del
OK
test_config_key.py
9.48 KB
Del
OK
test_configdialog.py
53.08 KB
Del
OK
test_debugger.py
571 B
Del
OK
test_debugger_r.py
631 B
Del
OK
test_debugobj.py
1.52 KB
Del
OK
test_debugobj_r.py
545 B
Del
OK
test_delegator.py
1.53 KB
Del
OK
test_editmenu.py
2.5 KB
Del
OK
test_editor.py
7.35 KB
Del
OK
test_filelist.py
795 B
Del
OK
test_format.py
23.06 KB
Del
OK
test_grep.py
4.95 KB
Del
OK
test_help.py
849 B
Del
OK
test_help_about.py
5.78 KB
Del
OK
test_history.py
5.39 KB
Del
OK
test_hyperparser.py
8.87 KB
Del
OK
test_iomenu.py
1.25 KB
Del
OK
test_macosx.py
3.23 KB
Del
OK
test_mainmenu.py
594 B
Del
OK
test_multicall.py
1.29 KB
Del
OK
test_outwin.py
5.42 KB
Del
OK
test_parenmatch.py
3.47 KB
Del
OK
test_pathbrowser.py
2.37 KB
Del
OK
test_percolator.py
3.97 KB
Del
OK
test_pyparse.py
18.78 KB
Del
OK
test_pyshell.py
2.12 KB
Del
OK
test_query.py
14.92 KB
Del
OK
test_redirector.py
4.08 KB
Del
OK
test_replace.py
8.11 KB
Del
OK
test_rpc.py
805 B
Del
OK
test_run.py
11.46 KB
Del
OK
test_runscript.py
777 B
Del
OK
test_scrolledlist.py
496 B
Del
OK
test_search.py
2.4 KB
Del
OK
test_searchbase.py
5.5 KB
Del
OK
test_searchengine.py
11.27 KB
Del
OK
test_sidebar.py
12.92 KB
Del
OK
test_squeezer.py
19.62 KB
Del
OK
test_stackviewer.py
1.18 KB
Del
OK
test_statusbar.py
1.11 KB
Del
OK
test_text.py
6.81 KB
Del
OK
test_textview.py
7.19 KB
Del
OK
test_tooltip.py
5.26 KB
Del
OK
test_tree.py
1.71 KB
Del
OK
test_undo.py
4.13 KB
Del
OK
test_warning.py
2.68 KB
Del
OK
test_window.py
1.05 KB
Del
OK
test_zoomheight.py
999 B
Del
OK
Edit: test_tooltip.py
"""Test tooltip, coverage 100%. Coverage is 100% after excluding 6 lines with "# pragma: no cover". They involve TclErrors that either should or should not happen in a particular situation, and which are 'pass'ed if they do. """ from idlelib.tooltip import TooltipBase, Hovertip from test.support import requires requires('gui') from functools import wraps import time from tkinter import Button, Tk, Toplevel import unittest def setUpModule(): global root root = Tk() def tearDownModule(): global root root.update_idletasks() root.destroy() del root def add_call_counting(func): @wraps(func) def wrapped_func(*args, **kwargs): wrapped_func.call_args_list.append((args, kwargs)) return func(*args, **kwargs) wrapped_func.call_args_list = [] return wrapped_func def _make_top_and_button(testobj): global root top = Toplevel(root) testobj.addCleanup(top.destroy) top.title("Test tooltip") button = Button(top, text='ToolTip test button') button.pack() testobj.addCleanup(button.destroy) top.lift() return top, button class ToolTipBaseTest(unittest.TestCase): def setUp(self): self.top, self.button = _make_top_and_button(self) def test_base_class_is_unusable(self): global root top = Toplevel(root) self.addCleanup(top.destroy) button = Button(top, text='ToolTip test button') button.pack() self.addCleanup(button.destroy) with self.assertRaises(NotImplementedError): tooltip = TooltipBase(button) tooltip.showtip() class HovertipTest(unittest.TestCase): def setUp(self): self.top, self.button = _make_top_and_button(self) def is_tipwindow_shown(self, tooltip): return tooltip.tipwindow and tooltip.tipwindow.winfo_viewable() def test_showtip(self): tooltip = Hovertip(self.button, 'ToolTip text') self.addCleanup(tooltip.hidetip) self.assertFalse(self.is_tipwindow_shown(tooltip)) tooltip.showtip() self.assertTrue(self.is_tipwindow_shown(tooltip)) def test_showtip_twice(self): tooltip = Hovertip(self.button, 'ToolTip text') self.addCleanup(tooltip.hidetip) self.assertFalse(self.is_tipwindow_shown(tooltip)) tooltip.showtip() self.assertTrue(self.is_tipwindow_shown(tooltip)) orig_tipwindow = tooltip.tipwindow tooltip.showtip() self.assertTrue(self.is_tipwindow_shown(tooltip)) self.assertIs(tooltip.tipwindow, orig_tipwindow) def test_hidetip(self): tooltip = Hovertip(self.button, 'ToolTip text') self.addCleanup(tooltip.hidetip) tooltip.showtip() tooltip.hidetip() self.assertFalse(self.is_tipwindow_shown(tooltip)) def test_showtip_on_mouse_enter_no_delay(self): tooltip = Hovertip(self.button, 'ToolTip text', hover_delay=None) self.addCleanup(tooltip.hidetip) tooltip.showtip = add_call_counting(tooltip.showtip) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip)) self.button.event_generate('<Enter>', x=0, y=0) root.update() self.assertTrue(self.is_tipwindow_shown(tooltip)) self.assertGreater(len(tooltip.showtip.call_args_list), 0) def test_hover_with_delay(self): # Run multiple tests requiring an actual delay simultaneously. # Test #1: A hover tip with a non-zero delay appears after the delay. tooltip1 = Hovertip(self.button, 'ToolTip text', hover_delay=100) self.addCleanup(tooltip1.hidetip) tooltip1.showtip = add_call_counting(tooltip1.showtip) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip1)) self.button.event_generate('<Enter>', x=0, y=0) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip1)) # Test #2: A hover tip with a non-zero delay doesn't appear when # the mouse stops hovering over the base widget before the delay # expires. tooltip2 = Hovertip(self.button, 'ToolTip text', hover_delay=100) self.addCleanup(tooltip2.hidetip) tooltip2.showtip = add_call_counting(tooltip2.showtip) root.update() self.button.event_generate('<Enter>', x=0, y=0) root.update() self.button.event_generate('<Leave>', x=0, y=0) root.update() time.sleep(0.15) root.update() # Test #1 assertions. self.assertTrue(self.is_tipwindow_shown(tooltip1)) self.assertGreater(len(tooltip1.showtip.call_args_list), 0) # Test #2 assertions. self.assertFalse(self.is_tipwindow_shown(tooltip2)) self.assertEqual(tooltip2.showtip.call_args_list, []) def test_hidetip_on_mouse_leave(self): tooltip = Hovertip(self.button, 'ToolTip text', hover_delay=None) self.addCleanup(tooltip.hidetip) tooltip.showtip = add_call_counting(tooltip.showtip) root.update() self.button.event_generate('<Enter>', x=0, y=0) root.update() self.button.event_generate('<Leave>', x=0, y=0) root.update() self.assertFalse(self.is_tipwindow_shown(tooltip)) self.assertGreater(len(tooltip.showtip.call_args_list), 0) if __name__ == '__main__': unittest.main(verbosity=2)
Save