diff --git a/Lib/idlelib/README.txt b/Lib/idlelib/README.txt index 8870fda315e392..4fc67fca50c972 100644 --- a/Lib/idlelib/README.txt +++ b/Lib/idlelib/README.txt @@ -106,7 +106,6 @@ help.html # copy of idle.html in docs, displayed by IDLE Help Subdirectories -------------- Icons # small image files -idle_test # files for human test and automated unit tests Unused and Deprecated files and objects (nim) --------------------------------------------- diff --git a/Lib/idlelib/autocomplete.py b/Lib/idlelib/autocomplete.py index 032d31225315fb..a6d3906586b2e5 100644 --- a/Lib/idlelib/autocomplete.py +++ b/Lib/idlelib/autocomplete.py @@ -225,4 +225,4 @@ def get_entity(self, name): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_autocomplete', verbosity=2) + main('test.test_idle.test_autocomplete', verbosity=2) diff --git a/Lib/idlelib/autocomplete_w.py b/Lib/idlelib/autocomplete_w.py index 0f835a9cc1d010..46dfcaae5fd15c 100644 --- a/Lib/idlelib/autocomplete_w.py +++ b/Lib/idlelib/autocomplete_w.py @@ -497,6 +497,6 @@ def hide_window(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_autocomplete_w', verbosity=2, exit=False) + main('test.test_idle.test_autocomplete_w', verbosity=2, exit=False) # TODO: autocomplete/w htest here diff --git a/Lib/idlelib/autoexpand.py b/Lib/idlelib/autoexpand.py index 92f5c84eb6f401..d1ffcfc1072f93 100644 --- a/Lib/idlelib/autoexpand.py +++ b/Lib/idlelib/autoexpand.py @@ -93,4 +93,4 @@ def getprevword(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_autoexpand', verbosity=2) + main('test.test_idle.test_autoexpand', verbosity=2) diff --git a/Lib/idlelib/browser.py b/Lib/idlelib/browser.py index 4da2d4071ac191..0297ed4e707d6a 100644 --- a/Lib/idlelib/browser.py +++ b/Lib/idlelib/browser.py @@ -244,6 +244,6 @@ class Nested_in_closure: pass if __name__ == "__main__": if len(sys.argv) == 1: # If pass file on command line, unittest fails. from unittest import main - main('idlelib.idle_test.test_browser', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + main('test.test_idle.test_browser', verbosity=2, exit=False) + from test.test_idle.htest import run run(_module_browser) diff --git a/Lib/idlelib/calltip.py b/Lib/idlelib/calltip.py index 40bc5a0ad798fe..c8d3f11d48bfc4 100644 --- a/Lib/idlelib/calltip.py +++ b/Lib/idlelib/calltip.py @@ -202,4 +202,4 @@ def get_argspec(ob): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_calltip', verbosity=2) + main('test.test_idle.test_calltip', verbosity=2) diff --git a/Lib/idlelib/calltip_w.py b/Lib/idlelib/calltip_w.py index 1e0404aa49f562..7aa8575d7f0fc9 100644 --- a/Lib/idlelib/calltip_w.py +++ b/Lib/idlelib/calltip_w.py @@ -195,7 +195,7 @@ def calltip_hide(event): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_calltip_w', verbosity=2, exit=False) + main('test.test_idle.test_calltip_w', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_calltip_window) diff --git a/Lib/idlelib/codecontext.py b/Lib/idlelib/codecontext.py index f2f44f5f8d4e61..292863c72f19e0 100644 --- a/Lib/idlelib/codecontext.py +++ b/Lib/idlelib/codecontext.py @@ -265,6 +265,6 @@ def update_highlight_colors(self): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_codecontext', verbosity=2, exit=False) + main('test.test_idle.test_codecontext', verbosity=2, exit=False) # Add htest. diff --git a/Lib/idlelib/colorizer.py b/Lib/idlelib/colorizer.py index e9f19c145c8673..6b68f79a2627a1 100644 --- a/Lib/idlelib/colorizer.py +++ b/Lib/idlelib/colorizer.py @@ -357,7 +357,7 @@ def removecolors(self): def _color_delegator(parent): # htest # from tkinter import Toplevel, Text - from idlelib.idle_test.test_colorizer import source + from test.test_idle.test_colorizer import source from idlelib.percolator import Percolator top = Toplevel(parent) @@ -378,7 +378,7 @@ def _color_delegator(parent): # htest # if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_colorizer', verbosity=2, exit=False) + main('test.test_idle.test_colorizer', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_color_delegator) diff --git a/Lib/idlelib/config.py b/Lib/idlelib/config.py index 5ce5f4a4f7bd0d..d11cccc116e6fb 100644 --- a/Lib/idlelib/config.py +++ b/Lib/idlelib/config.py @@ -906,6 +906,6 @@ def dumpCfg(cfg): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_config', verbosity=2, exit=False) + main('test.test_idle.test_config', verbosity=2, exit=False) # Run revised _dump() as htest? diff --git a/Lib/idlelib/config_key.py b/Lib/idlelib/config_key.py index 9ca3a156f4b97f..d2969ab179c2d5 100644 --- a/Lib/idlelib/config_key.py +++ b/Lib/idlelib/config_key.py @@ -321,7 +321,7 @@ def bind_ok(self, keys): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_config_key', verbosity=2, exit=False) + main('test.test_idle.test_config_key', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(GetKeysDialog) diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py index 57eaffeef39625..fee109849d6f6c 100644 --- a/Lib/idlelib/configdialog.py +++ b/Lib/idlelib/configdialog.py @@ -2408,7 +2408,7 @@ def _configure_canvas(event): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_configdialog', verbosity=2, exit=False) + main('test.test_idle.test_configdialog', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(ConfigDialog) diff --git a/Lib/idlelib/debugger.py b/Lib/idlelib/debugger.py index ccd03e46e16147..10faaf8b28287a 100644 --- a/Lib/idlelib/debugger.py +++ b/Lib/idlelib/debugger.py @@ -545,6 +545,6 @@ def close(self): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_debugger', verbosity=2, exit=False) + main('test.test_idle.test_debugger', verbosity=2, exit=False) # TODO: htest? diff --git a/Lib/idlelib/debugger_r.py b/Lib/idlelib/debugger_r.py index 26204438858d8a..da4d1f48b7b1d1 100644 --- a/Lib/idlelib/debugger_r.py +++ b/Lib/idlelib/debugger_r.py @@ -390,4 +390,4 @@ def restart_subprocess_debugger(rpcclt): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_debugger_r', verbosity=2, exit=False) + main('test.test_idle.test_debugger_r', verbosity=2, exit=False) diff --git a/Lib/idlelib/debugobj.py b/Lib/idlelib/debugobj.py index 5a4c9978842035..6ce6865745278a 100644 --- a/Lib/idlelib/debugobj.py +++ b/Lib/idlelib/debugobj.py @@ -136,7 +136,7 @@ def _object_browser(parent): # htest # if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_debugobj', verbosity=2, exit=False) + main('test.test_idle.test_debugobj', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_object_browser) diff --git a/Lib/idlelib/debugobj_r.py b/Lib/idlelib/debugobj_r.py index 75e75ebe5acafc..d9dcec7b90edc2 100644 --- a/Lib/idlelib/debugobj_r.py +++ b/Lib/idlelib/debugobj_r.py @@ -38,4 +38,4 @@ def _GetSubList(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_debugobj_r', verbosity=2) + main('test.test_idle.test_debugobj_r', verbosity=2) diff --git a/Lib/idlelib/delegator.py b/Lib/idlelib/delegator.py index 55c95da8532f47..5e43d39bf9430a 100644 --- a/Lib/idlelib/delegator.py +++ b/Lib/idlelib/delegator.py @@ -30,4 +30,4 @@ def setdelegate(self, delegate): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_delegator', verbosity=2) + main('test.test_idle.test_delegator', verbosity=2) diff --git a/Lib/idlelib/dynoption.py b/Lib/idlelib/dynoption.py index 9c6ffa435a1089..dcd6f7886029fb 100644 --- a/Lib/idlelib/dynoption.py +++ b/Lib/idlelib/dynoption.py @@ -54,5 +54,5 @@ def update(): button.pack() if __name__ == '__main__': - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_dyn_option_menu) diff --git a/Lib/idlelib/editor.py b/Lib/idlelib/editor.py index 6c52efd655e121..f596517679bdfa 100644 --- a/Lib/idlelib/editor.py +++ b/Lib/idlelib/editor.py @@ -1667,7 +1667,7 @@ def _editor_window(parent): # htest # if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_editor', verbosity=2, exit=False) + main('test.test_idle.test_editor', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_editor_window) diff --git a/Lib/idlelib/filelist.py b/Lib/idlelib/filelist.py index 254f5caf6b81b0..6416e7f8f450ab 100644 --- a/Lib/idlelib/filelist.py +++ b/Lib/idlelib/filelist.py @@ -126,6 +126,6 @@ def _test(): # TODO check and convert to htest if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_filelist', verbosity=2) + main('test.test_idle.test_filelist', verbosity=2) # _test() diff --git a/Lib/idlelib/format.py b/Lib/idlelib/format.py index 4b57a182c9a49d..71209d75003d9c 100644 --- a/Lib/idlelib/format.py +++ b/Lib/idlelib/format.py @@ -423,4 +423,4 @@ def do_rstrip(self, event=None): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_format', verbosity=2, exit=False) + main('test.test_idle.test_format', verbosity=2, exit=False) diff --git a/Lib/idlelib/grep.py b/Lib/idlelib/grep.py index 12513594b76f8f..5310e43cc0e135 100644 --- a/Lib/idlelib/grep.py +++ b/Lib/idlelib/grep.py @@ -215,7 +215,7 @@ def show_grep_dialog(): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_grep', verbosity=2, exit=False) + main('test.test_idle.test_grep', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_grep_dialog) diff --git a/Lib/idlelib/help.py b/Lib/idlelib/help.py index f420d40fb9ea40..69da6c8f07b5b3 100644 --- a/Lib/idlelib/help.py +++ b/Lib/idlelib/help.py @@ -288,7 +288,7 @@ def show_idlehelp(parent): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_help', verbosity=2, exit=False) + main('test.test_idle.test_help', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(show_idlehelp) diff --git a/Lib/idlelib/help_about.py b/Lib/idlelib/help_about.py index 9cb3ba78c50ebd..0ce80b9a44e1f3 100644 --- a/Lib/idlelib/help_about.py +++ b/Lib/idlelib/help_about.py @@ -205,7 +205,7 @@ def ok(self, event=None): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_help_about', verbosity=2, exit=False) + main('test.test_idle.test_help_about', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(AboutDialog) diff --git a/Lib/idlelib/history.py b/Lib/idlelib/history.py index 100f505256a940..c3fd81865d4a73 100644 --- a/Lib/idlelib/history.py +++ b/Lib/idlelib/history.py @@ -103,4 +103,4 @@ def store(self, source): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_history', verbosity=2, exit=False) + main('test.test_idle.test_history', verbosity=2, exit=False) diff --git a/Lib/idlelib/hyperparser.py b/Lib/idlelib/hyperparser.py index 77baca782b3fdc..307a03e0ce1887 100644 --- a/Lib/idlelib/hyperparser.py +++ b/Lib/idlelib/hyperparser.py @@ -309,4 +309,4 @@ def get_expression(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_hyperparser', verbosity=2) + main('test.test_idle.test_hyperparser', verbosity=2) diff --git a/Lib/idlelib/idle_test/__init__.py b/Lib/idlelib/idle_test/__init__.py deleted file mode 100644 index ad067b405cab67..00000000000000 --- a/Lib/idlelib/idle_test/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -'''idlelib.idle_test is a private implementation of test.test_idle, -which tests the IDLE application as part of the stdlib test suite. -Run IDLE tests alone with "python -m test.test_idle". -Starting with Python 3.6, IDLE requires tcl/tk 8.5 or later. - -This package and its contained modules are subject to change and -any direct use is at your own risk. -''' -from os.path import dirname - -def load_tests(loader, standard_tests, pattern): - this_dir = dirname(__file__) - top_dir = dirname(dirname(this_dir)) - package_tests = loader.discover(start_dir=this_dir, pattern='test*.py', - top_level_dir=top_dir) - standard_tests.addTests(package_tests) - return standard_tests diff --git a/Lib/idlelib/iomenu.py b/Lib/idlelib/iomenu.py index 86ce68c06a4470..1ca854f6213a1e 100644 --- a/Lib/idlelib/iomenu.py +++ b/Lib/idlelib/iomenu.py @@ -429,7 +429,7 @@ def savecopy(self, event): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_iomenu', verbosity=2, exit=False) + main('test.test_idle.test_iomenu', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_io_binding) diff --git a/Lib/idlelib/macosx.py b/Lib/idlelib/macosx.py index 53848fb079eab1..011677c3ae4104 100644 --- a/Lib/idlelib/macosx.py +++ b/Lib/idlelib/macosx.py @@ -263,4 +263,4 @@ def setupApp(root, flist): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_macosx', verbosity=2) + main('test.test_idle.test_macosx', verbosity=2) diff --git a/Lib/idlelib/mainmenu.py b/Lib/idlelib/mainmenu.py index a1b169176cba92..c1bdd5e730592d 100644 --- a/Lib/idlelib/mainmenu.py +++ b/Lib/idlelib/mainmenu.py @@ -122,4 +122,4 @@ if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_mainmenu', verbosity=2) + main('test.test_idle.test_mainmenu', verbosity=2) diff --git a/Lib/idlelib/multicall.py b/Lib/idlelib/multicall.py index dc02001292fc14..4c6e0993035a07 100644 --- a/Lib/idlelib/multicall.py +++ b/Lib/idlelib/multicall.py @@ -442,7 +442,7 @@ def handler(event): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_mainmenu', verbosity=2, exit=False) + main('test.test_idle.test_mainmenu', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_multi_call) diff --git a/Lib/idlelib/outwin.py b/Lib/idlelib/outwin.py index 5ab08bbaf4bc95..3f9837725c61d6 100644 --- a/Lib/idlelib/outwin.py +++ b/Lib/idlelib/outwin.py @@ -184,4 +184,4 @@ def setup(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_outwin', verbosity=2, exit=False) + main('test.test_idle.test_outwin', verbosity=2, exit=False) diff --git a/Lib/idlelib/parenmatch.py b/Lib/idlelib/parenmatch.py index 3fd7aadb2aea84..0b263d401cd304 100644 --- a/Lib/idlelib/parenmatch.py +++ b/Lib/idlelib/parenmatch.py @@ -180,4 +180,4 @@ def set_timeout_last(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_parenmatch', verbosity=2) + main('test.test_idle.test_parenmatch', verbosity=2) diff --git a/Lib/idlelib/pathbrowser.py b/Lib/idlelib/pathbrowser.py index 6de242d0000bed..c998b90831df3c 100644 --- a/Lib/idlelib/pathbrowser.py +++ b/Lib/idlelib/pathbrowser.py @@ -105,7 +105,7 @@ def _path_browser(parent): # htest # if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_pathbrowser', verbosity=2, exit=False) + main('test.test_idle.test_pathbrowser', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_path_browser) diff --git a/Lib/idlelib/percolator.py b/Lib/idlelib/percolator.py index 1fe34d29f54eb2..c21b71060f0080 100644 --- a/Lib/idlelib/percolator.py +++ b/Lib/idlelib/percolator.py @@ -112,7 +112,7 @@ def toggle2(): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_percolator', verbosity=2, exit=False) + main('test.test_idle.test_percolator', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_percolator) diff --git a/Lib/idlelib/pyparse.py b/Lib/idlelib/pyparse.py index 8545c63e1435d4..fc9a45ab1edc97 100644 --- a/Lib/idlelib/pyparse.py +++ b/Lib/idlelib/pyparse.py @@ -586,4 +586,4 @@ def get_last_stmt_bracketing(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_pyparse', verbosity=2) + main('test.test_idle.test_pyparse', verbosity=2) diff --git a/Lib/idlelib/query.py b/Lib/idlelib/query.py index df02f2123ab02f..3f79a3192c7f20 100644 --- a/Lib/idlelib/query.py +++ b/Lib/idlelib/query.py @@ -386,7 +386,7 @@ def entry_ok(self): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_query', verbosity=2, exit=False) + main('test.test_idle.test_query', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(Query, HelpSource, CustomRun) diff --git a/Lib/idlelib/redirector.py b/Lib/idlelib/redirector.py index 9ab34c5acfb22c..daa4d5d584f377 100644 --- a/Lib/idlelib/redirector.py +++ b/Lib/idlelib/redirector.py @@ -168,7 +168,7 @@ def my_insert(*args): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_redirector', verbosity=2, exit=False) + main('test.test_idle.test_redirector', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_widget_redirector) diff --git a/Lib/idlelib/replace.py b/Lib/idlelib/replace.py index ca83173877ad1d..7c95082b56edba 100644 --- a/Lib/idlelib/replace.py +++ b/Lib/idlelib/replace.py @@ -301,7 +301,7 @@ def show_replace(): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_replace', verbosity=2, exit=False) + main('test.test_idle.test_replace', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_replace_dialog) diff --git a/Lib/idlelib/rpc.py b/Lib/idlelib/rpc.py index 8efcf048fa3aa2..aa6694933b2107 100644 --- a/Lib/idlelib/rpc.py +++ b/Lib/idlelib/rpc.py @@ -632,4 +632,4 @@ def displayhook(value): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_rpc', verbosity=2,) + main('test.test_idle.test_rpc', verbosity=2,) diff --git a/Lib/idlelib/run.py b/Lib/idlelib/run.py index aaa9b5ce8d181f..2958c7b83ca5a7 100644 --- a/Lib/idlelib/run.py +++ b/Lib/idlelib/run.py @@ -637,6 +637,6 @@ def stackviewer(self, flist_oid=None): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_run', verbosity=2) + main('test.test_idle.test_run', verbosity=2) capture_warnings(False) # Make sure turned off; see bpo-18081. diff --git a/Lib/idlelib/runscript.py b/Lib/idlelib/runscript.py index 55712e904603f8..e2227aa75b7f3b 100644 --- a/Lib/idlelib/runscript.py +++ b/Lib/idlelib/runscript.py @@ -210,4 +210,4 @@ def errorbox(self, title, message): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_runscript', verbosity=2,) + main('test.test_idle.test_runscript', verbosity=2,) diff --git a/Lib/idlelib/scrolledlist.py b/Lib/idlelib/scrolledlist.py index 71fd18ab19ec8a..9ea5b7cbe29dfc 100644 --- a/Lib/idlelib/scrolledlist.py +++ b/Lib/idlelib/scrolledlist.py @@ -143,7 +143,7 @@ def on_double(self, index): print("double", self.get(index)) if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_scrolledlist', verbosity=2,) + main('test.test_idle.test_scrolledlist', verbosity=2,) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_scrolled_list) diff --git a/Lib/idlelib/search.py b/Lib/idlelib/search.py index b35f3b59c3d2e8..e3d908ef49c219 100644 --- a/Lib/idlelib/search.py +++ b/Lib/idlelib/search.py @@ -158,7 +158,7 @@ def show_find(): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_search', verbosity=2, exit=False) + main('test.test_idle.test_search', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_search_dialog) diff --git a/Lib/idlelib/searchbase.py b/Lib/idlelib/searchbase.py index 64ed50c7364be3..a3a736fc829939 100644 --- a/Lib/idlelib/searchbase.py +++ b/Lib/idlelib/searchbase.py @@ -204,7 +204,7 @@ def default_command(self, dummy): pass if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_searchbase', verbosity=2, exit=False) + main('test.test_idle.test_searchbase', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_searchbase) diff --git a/Lib/idlelib/searchengine.py b/Lib/idlelib/searchengine.py index eddef581ab40a7..d767e72e76adf9 100644 --- a/Lib/idlelib/searchengine.py +++ b/Lib/idlelib/searchengine.py @@ -231,4 +231,4 @@ def get_line_col(index): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_searchengine', verbosity=2) + main('test.test_idle.test_searchengine', verbosity=2) diff --git a/Lib/idlelib/sidebar.py b/Lib/idlelib/sidebar.py index fb1084dbf3f18b..aeae140d50b833 100644 --- a/Lib/idlelib/sidebar.py +++ b/Lib/idlelib/sidebar.py @@ -515,7 +515,7 @@ def update_colors(self): def _linenumbers_drag_scrolling(parent): # htest # - from idlelib.idle_test.test_sidebar import Dummy_editwin + from test.test_idle.test_sidebar import Dummy_editwin toplevel = tk.Toplevel(parent) text_frame = tk.Frame(toplevel) @@ -538,7 +538,7 @@ def _linenumbers_drag_scrolling(parent): # htest # if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_sidebar', verbosity=2, exit=False) + main('test.test_idle.test_sidebar', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_linenumbers_drag_scrolling) diff --git a/Lib/idlelib/squeezer.py b/Lib/idlelib/squeezer.py index 929c3fd3a507f4..7cde4730be6a32 100644 --- a/Lib/idlelib/squeezer.py +++ b/Lib/idlelib/squeezer.py @@ -340,6 +340,6 @@ def squeeze_current_text(self): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_squeezer', verbosity=2, exit=False) + main('test.test_idle.test_squeezer', verbosity=2, exit=False) # Add htest. diff --git a/Lib/idlelib/stackviewer.py b/Lib/idlelib/stackviewer.py index 94ffb4eff4dd26..a45c08af990539 100644 --- a/Lib/idlelib/stackviewer.py +++ b/Lib/idlelib/stackviewer.py @@ -149,7 +149,7 @@ def _stack_viewer(parent): # htest # if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_stackviewer', verbosity=2, exit=False) + main('test.test_idle.test_stackviewer', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_stack_viewer) diff --git a/Lib/idlelib/statusbar.py b/Lib/idlelib/statusbar.py index 755fafb0ac6438..38e3ef5e3c0fdd 100644 --- a/Lib/idlelib/statusbar.py +++ b/Lib/idlelib/statusbar.py @@ -44,7 +44,7 @@ def change(): if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_statusbar', verbosity=2, exit=False) + main('test.test_idle.test_statusbar', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_multistatus_bar) diff --git a/Lib/idlelib/textview.py b/Lib/idlelib/textview.py index a66c1a4309a617..d5e0b941e65a07 100644 --- a/Lib/idlelib/textview.py +++ b/Lib/idlelib/textview.py @@ -187,7 +187,7 @@ def view_file(parent, title, filename, encoding, modal=True, wrap='word', if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_textview', verbosity=2, exit=False) + main('test.test_idle.test_textview', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(ViewWindow) diff --git a/Lib/idlelib/tooltip.py b/Lib/idlelib/tooltip.py index d714318dae8ef1..faf76bc838214d 100644 --- a/Lib/idlelib/tooltip.py +++ b/Lib/idlelib/tooltip.py @@ -180,7 +180,7 @@ def _tooltip(parent): # htest # if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_tooltip', verbosity=2, exit=False) + main('test.test_idle.test_tooltip', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_tooltip) diff --git a/Lib/idlelib/tree.py b/Lib/idlelib/tree.py index 5947268f5c35ae..55e4d2fbe35484 100644 --- a/Lib/idlelib/tree.py +++ b/Lib/idlelib/tree.py @@ -494,7 +494,7 @@ def _tree_widget(parent): # htest # if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_tree', verbosity=2, exit=False) + main('test.test_idle.test_tree', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_tree_widget) diff --git a/Lib/idlelib/undo.py b/Lib/idlelib/undo.py index 85ecffecb4cbcb..eecac13356f0b8 100644 --- a/Lib/idlelib/undo.py +++ b/Lib/idlelib/undo.py @@ -360,7 +360,7 @@ def _undo_delegator(parent): # htest # if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_undo', verbosity=2, exit=False) + main('test.test_idle.test_undo', verbosity=2, exit=False) - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(_undo_delegator) diff --git a/Lib/idlelib/util.py b/Lib/idlelib/util.py index ede670a4db5536..b31f669e8b0cb8 100644 --- a/Lib/idlelib/util.py +++ b/Lib/idlelib/util.py @@ -18,4 +18,4 @@ if __name__ == '__main__': from unittest import main - main('idlelib.idle_test.test_util', verbosity=2) + main('test.test_idle.test_util', verbosity=2) diff --git a/Lib/idlelib/window.py b/Lib/idlelib/window.py index 460d5b67948dde..512c0b0c7d0981 100644 --- a/Lib/idlelib/window.py +++ b/Lib/idlelib/window.py @@ -95,4 +95,4 @@ def wakeup(self): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_window', verbosity=2) + main('test.test_idle.test_window', verbosity=2) diff --git a/Lib/idlelib/zoomheight.py b/Lib/idlelib/zoomheight.py index cd50c91c183e49..e6daa553d7de86 100644 --- a/Lib/idlelib/zoomheight.py +++ b/Lib/idlelib/zoomheight.py @@ -119,6 +119,6 @@ def set_window_geometry(top, geometry): if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_zoomheight', verbosity=2, exit=False) + main('test.test_idle.test_zoomheight', verbosity=2, exit=False) # Add htest? diff --git a/Lib/idlelib/zzdummy.py b/Lib/idlelib/zzdummy.py index 1247e8f1cc0528..6a0aefbab038d5 100644 --- a/Lib/idlelib/zzdummy.py +++ b/Lib/idlelib/zzdummy.py @@ -70,4 +70,4 @@ def z_out_event(self, line): if __name__ == "__main__": import unittest - unittest.main('idlelib.idle_test.test_zzdummy', verbosity=2, exit=False) + unittest.main('test.test_idle.test_zzdummy', verbosity=2, exit=False) diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py index 37f86995d6ce00..33fe7e98f49b5b 100644 --- a/Lib/pyclbr.py +++ b/Lib/pyclbr.py @@ -85,7 +85,7 @@ def __init__(self, module, name, super_, file, lineno, # These 2 functions are used in these tests -# Lib/test/test_pyclbr, Lib/idlelib/idle_test/test_browser.py +# Lib/test/test_pyclbr, Lib/test/test_idle/test_browser.py def _nest_function(ob, func_name, lineno, end_lineno, is_async=False): "Return a Function after nesting within ob." return Function(ob.module, func_name, ob.file, lineno, diff --git a/Lib/test/test_idle.py b/Lib/test/test_idle.py deleted file mode 100644 index b94b18a541a701..00000000000000 --- a/Lib/test/test_idle.py +++ /dev/null @@ -1,28 +0,0 @@ -import unittest -from test.support.import_helper import import_module -from test.support import check_sanitizer - -if check_sanitizer(address=True, memory=True): - raise unittest.SkipTest("Tests involvin libX11 can SEGFAULT on ASAN/MSAN builds") - -# Skip test_idle if _tkinter wasn't built, if tkinter is missing, -# if tcl/tk is not the 8.5+ needed for ttk widgets, -# or if idlelib is missing (not installed). -tk = import_module('tkinter') # Also imports _tkinter. -if tk.TkVersion < 8.5: - raise unittest.SkipTest("IDLE requires tk 8.5 or later.") -idlelib = import_module('idlelib') - -# Before importing and executing more of idlelib, -# tell IDLE to avoid changing the environment. -idlelib.testing = True - -# Unittest.main and test.libregrtest.runtest.runtest_inner -# call load_tests, when present here, to discover tests to run. -from idlelib.idle_test import load_tests - -if __name__ == '__main__': - tk.NoDefaultRoot() - unittest.main(exit=False) - tk._support_default_root = True - tk._default_root = None diff --git a/Lib/idlelib/idle_test/README.txt b/Lib/test/test_idle/README.txt similarity index 89% rename from Lib/idlelib/idle_test/README.txt rename to Lib/test/test_idle/README.txt index 566bfd179fdf1b..4d58bfadd7c402 100644 --- a/Lib/idlelib/idle_test/README.txt +++ b/Lib/test/test_idle/README.txt @@ -9,14 +9,14 @@ python -m test.test_idle Human-mediated tests were added later in 3.4. -python -m idlelib.idle_test.htest +python -m test.test_idle.htest 1. Test Files -The idle directory, idlelib, has over 60 xyz.py files. The idle_test +The idle directory, idlelib, has over 60 xyz.py files. The Lib/test/test_idle subdirectory contains test_xyz.py for each implementation file xyz.py. -To add a test for abc.py, open idle_test/template.py and immediately +To add a test for abc.py, open Lib/test/test_idle/template.py and immediately Save As test_abc.py. Insert 'abc' on the first line, and replace 'zzdummy' with 'abc. @@ -33,7 +33,7 @@ insert the import and main lines before the htest lines. if __name__ == "__main__": from unittest import main - main('idlelib.idle_test.test_abc', verbosity=2, exit=False) + main('test.test_idle.test_abc', verbosity=2, exit=False) The ', exit=False' is only needed if an htest follows. @@ -114,7 +114,7 @@ these conditions are met: Tests of non-GUI operations should avoid creating tk widgets. Incidental uses of tk variables and messageboxes can be replaced by the mock -classes in idle_test/mock_tk.py. The mock text handles some uses of the +classes in test_idle/mock_tk.py. The mock text handles some uses of the tk Text widget. @@ -132,22 +132,22 @@ GUI tests, in test_xyz.py. (Both '-m idlelib' and '-m idlelib.idle' start Idle and so cannot run tests.) python -m idlelib.xyz -python -m idlelib.idle_test.test_xyz +python -m test.test_idle.test_xyz -The following runs all idle_test/test_*.py tests interactively. +The following runs all test_idle/test_*.py tests interactively. >>> import unittest ->>> unittest.main('idlelib.idle_test', verbosity=2) +>>> unittest.main('test.test_idle', verbosity=2) The following run all Idle tests at a command line. Option '-v' is the same as 'verbosity=2'. -python -m unittest -v idlelib.idle_test +python -m unittest -v test.test_idle python -m test -v -ugui test_idle python -m test.test_idle The idle tests are 'discovered' by -idlelib.idle_test.__init__.load_tests, which is also imported into +test.test_idle.__init__.load_tests, which is also imported into test.test_idle. Normally, neither file should be changed when working on individual test modules. The third command runs unittest indirectly through regrtest. The same happens when the entire test suite is run @@ -161,8 +161,8 @@ latter allows use of other regrtest options. When using the latter, all components of the pattern must be present, but any can be replaced by '*'. -python -m unittest -v idlelib.idle_test.test_xyz.Test_case.test_meth -python -m test -m idlelib.idle_test.text_xyz.Test_case.test_meth test_idle +python -m unittest -v test.test_idle.test_xyz.Test_case.test_meth +python -m test -m test.test_idle.text_xyz.Test_case.test_meth test_idle The test suite can be run in an IDLE user process from Shell. >>> import test.autotest # Issue 25588, 2017/10/13, 3.6.4, 3.7.0a2. @@ -173,13 +173,13 @@ work when run from the editor. 4. Human-mediated Tests Human-mediated tests are widget tests that cannot be automated but need -human verification. They are contained in idlelib/idle_test/htest.py, +human verification. They are contained in test_idle/htest.py, which has instructions. (Some modules need an auxiliary function, identified with "# htest # on the header line.) The set is about complete, though some tests need improvement. To run all htests, run the htest file from an editor or from the command line with: -python -m idlelib.idle_test.htest +python -m test.test_idle.htest 5. Test Coverage @@ -225,8 +225,8 @@ rem filename without .py, 2nd parameter if test is not test_filename setlocal set py=f:\dev\3x\pcbuild\win32\python_d.exe set src=idlelib.%1 -if "%2" EQU "" set tst=f:/dev/3x/Lib/idlelib/idle_test/test_%1.py -if "%2" NEQ "" set tst=f:/dev/ex/Lib/idlelib/idle_test/test_%2.py +if "%2" EQU "" set tst=f:/dev/3x/Lib/test/test_idle/test_%1.py +if "%2" NEQ "" set tst=f:/dev/ex/Lib/test/test_idle/test_%2.py %py% -m coverage run --pylib --source=%src% %tst% %py% -m coverage report --show-missing diff --git a/Lib/test/test_idle/__init__.py b/Lib/test/test_idle/__init__.py new file mode 100644 index 00000000000000..7467fde07e2b29 --- /dev/null +++ b/Lib/test/test_idle/__init__.py @@ -0,0 +1,35 @@ +'''Tests the IDLE application as part of the stdlib test suite. +Run IDLE tests alone with "python -m test.test_idle". +Starting with Python 3.6, IDLE requires tcl/tk 8.5 or later. + +This package and its contained modules are subject to change and +any direct use is at your own risk. +''' +from os.path import dirname +from test import support +from test.support.import_helper import import_module + + +if support.check_sanitizer(address=True, memory=True): + raise unittest.SkipTest("Tests involving libX11 can SEGFAULT on ASAN/MSAN builds") + +# Skip test_idle if _tkinter wasn't built, if tkinter is missing, +# if tcl/tk is not the 8.5+ needed for ttk widgets, +# or if idlelib is missing (not installed). +tk = import_module('tkinter') # Also imports _tkinter. +if tk.TkVersion < 8.5: + raise unittest.SkipTest("IDLE requires tk 8.5 or later.") +idlelib = import_module('idlelib') + +# Before importing and executing more of idlelib, +# tell IDLE to avoid changing the environment. +idlelib.testing = True + + +def load_tests(loader, standard_tests, pattern): + this_dir = dirname(__file__) + top_dir = dirname(dirname(this_dir)) + package_tests = loader.discover(start_dir=this_dir, pattern='test*.py', + top_level_dir=top_dir) + standard_tests.addTests(package_tests) + return standard_tests diff --git a/Lib/test/test_idle/__main__.py b/Lib/test/test_idle/__main__.py new file mode 100644 index 00000000000000..40a23a297ec2b4 --- /dev/null +++ b/Lib/test/test_idle/__main__.py @@ -0,0 +1,4 @@ +from . import load_tests +import unittest + +unittest.main() diff --git a/Lib/idlelib/idle_test/example_noext b/Lib/test/test_idle/example_noext similarity index 100% rename from Lib/idlelib/idle_test/example_noext rename to Lib/test/test_idle/example_noext diff --git a/Lib/idlelib/idle_test/example_stub.pyi b/Lib/test/test_idle/example_stub.pyi similarity index 100% rename from Lib/idlelib/idle_test/example_stub.pyi rename to Lib/test/test_idle/example_stub.pyi diff --git a/Lib/idlelib/idle_test/htest.py b/Lib/test/test_idle/htest.py similarity index 99% rename from Lib/idlelib/idle_test/htest.py rename to Lib/test/test_idle/htest.py index d297f8aa0094ee..9632822b3d2ae0 100644 --- a/Lib/idlelib/idle_test/htest.py +++ b/Lib/test/test_idle/htest.py @@ -23,7 +23,7 @@ if __name__ == '__main__': - from idlelib.idle_test.htest import run + from test.test_idle.htest import run run(X) To have wrapper functions and test invocation code ignored by coveragepy diff --git a/Lib/idlelib/idle_test/mock_idle.py b/Lib/test/test_idle/mock_idle.py similarity index 97% rename from Lib/idlelib/idle_test/mock_idle.py rename to Lib/test/test_idle/mock_idle.py index 71fa480ce4d05c..fe400d508534d6 100644 --- a/Lib/idlelib/idle_test/mock_idle.py +++ b/Lib/test/test_idle/mock_idle.py @@ -3,7 +3,7 @@ Attributes and methods will be added as needed for tests. ''' -from idlelib.idle_test.mock_tk import Text +from test.test_idle.mock_tk import Text class Func: '''Record call, capture args, return/raise result set by test. diff --git a/Lib/idlelib/idle_test/mock_tk.py b/Lib/test/test_idle/mock_tk.py similarity index 99% rename from Lib/idlelib/idle_test/mock_tk.py rename to Lib/test/test_idle/mock_tk.py index 8304734b847a83..c8d54443b1c03c 100644 --- a/Lib/idlelib/idle_test/mock_tk.py +++ b/Lib/test/test_idle/mock_tk.py @@ -61,7 +61,7 @@ class Mbox: Example usage in test_module.py for testing functions in module.py: --- -from idlelib.idle_test.mock_tk import Mbox +from test.test_idle.mock_tk import Mbox import module orig_mbox = module.messagebox diff --git a/Lib/idlelib/idle_test/template.py b/Lib/test/test_idle/template.py similarity index 100% rename from Lib/idlelib/idle_test/template.py rename to Lib/test/test_idle/template.py diff --git a/Lib/idlelib/idle_test/test_autocomplete.py b/Lib/test/test_idle/test_autocomplete.py similarity index 99% rename from Lib/idlelib/idle_test/test_autocomplete.py rename to Lib/test/test_idle/test_autocomplete.py index a811363c18d04e..ec8e6d8246a870 100644 --- a/Lib/idlelib/idle_test/test_autocomplete.py +++ b/Lib/test/test_idle/test_autocomplete.py @@ -9,8 +9,8 @@ import idlelib.autocomplete as ac import idlelib.autocomplete_w as acw -from idlelib.idle_test.mock_idle import Func -from idlelib.idle_test.mock_tk import Event +from test.test_idle.mock_idle import Func +from test.test_idle.mock_tk import Event class DummyEditwin: diff --git a/Lib/idlelib/idle_test/test_autocomplete_w.py b/Lib/test/test_idle/test_autocomplete_w.py similarity index 100% rename from Lib/idlelib/idle_test/test_autocomplete_w.py rename to Lib/test/test_idle/test_autocomplete_w.py diff --git a/Lib/idlelib/idle_test/test_autoexpand.py b/Lib/test/test_idle/test_autoexpand.py similarity index 98% rename from Lib/idlelib/idle_test/test_autoexpand.py rename to Lib/test/test_idle/test_autoexpand.py index e734a8be714a2a..fc93f0a5229353 100644 --- a/Lib/idlelib/idle_test/test_autoexpand.py +++ b/Lib/test/test_idle/test_autoexpand.py @@ -28,7 +28,7 @@ def setUpClass(cls): ## requires('gui') ## #raise ResourceDenied() # Uncomment to test mock. ## except ResourceDenied: -## from idlelib.idle_test.mock_tk import Text +## from test.test_idle.mock_tk import Text ## cls.text = Text() ## cls.text.bell = lambda: None ## else: diff --git a/Lib/idlelib/idle_test/test_browser.py b/Lib/test/test_idle/test_browser.py similarity index 99% rename from Lib/idlelib/idle_test/test_browser.py rename to Lib/test/test_idle/test_browser.py index 03a50f22ca1e82..0c0790c923cd9a 100644 --- a/Lib/idlelib/idle_test/test_browser.py +++ b/Lib/test/test_idle/test_browser.py @@ -4,7 +4,7 @@ from test.support import requires import unittest from unittest import mock -from idlelib.idle_test.mock_idle import Func +from test.test_idle.mock_idle import Func from collections import deque import os.path diff --git a/Lib/idlelib/idle_test/test_calltip.py b/Lib/test/test_idle/test_calltip.py similarity index 99% rename from Lib/idlelib/idle_test/test_calltip.py rename to Lib/test/test_idle/test_calltip.py index 1ccb63b9dbd65f..5fb7b5161a7bb5 100644 --- a/Lib/idlelib/idle_test/test_calltip.py +++ b/Lib/test/test_idle/test_calltip.py @@ -6,7 +6,7 @@ import textwrap import types import re -from idlelib.idle_test.mock_tk import Text +from test.test_idle.mock_tk import Text # Test Class TC is used in multiple get_argspec test methods diff --git a/Lib/idlelib/idle_test/test_calltip_w.py b/Lib/test/test_idle/test_calltip_w.py similarity index 100% rename from Lib/idlelib/idle_test/test_calltip_w.py rename to Lib/test/test_idle/test_calltip_w.py diff --git a/Lib/idlelib/idle_test/test_codecontext.py b/Lib/test/test_idle/test_codecontext.py similarity index 100% rename from Lib/idlelib/idle_test/test_codecontext.py rename to Lib/test/test_idle/test_codecontext.py diff --git a/Lib/idlelib/idle_test/test_colorizer.py b/Lib/test/test_idle/test_colorizer.py similarity index 99% rename from Lib/idlelib/idle_test/test_colorizer.py rename to Lib/test/test_idle/test_colorizer.py index 308bc389384d33..f53fd124cadfa7 100644 --- a/Lib/idlelib/idle_test/test_colorizer.py +++ b/Lib/test/test_idle/test_colorizer.py @@ -3,7 +3,7 @@ from test.support import requires import unittest from unittest import mock -from idlelib.idle_test.tkinter_testing_utils import run_in_tk_mainloop +from test.test_idle.tkinter_testing_utils import run_in_tk_mainloop from functools import partial import textwrap diff --git a/Lib/idlelib/idle_test/test_config.py b/Lib/test/test_idle/test_config.py similarity index 99% rename from Lib/idlelib/idle_test/test_config.py rename to Lib/test/test_idle/test_config.py index 697fda527968de..d07982785d51e2 100644 --- a/Lib/idlelib/idle_test/test_config.py +++ b/Lib/test/test_idle/test_config.py @@ -11,7 +11,7 @@ import unittest from unittest import mock import idlelib -from idlelib.idle_test.mock_idle import Func +from test.test_idle.mock_idle import Func # Tests should not depend on fortuitous user configurations. # They must not affect actual user .cfg files. @@ -185,12 +185,9 @@ def setUpClass(cls): cls.config_string = {} conf = config.IdleConf(_utest=True) - if __name__ != '__main__': - idle_dir = os.path.dirname(__file__) - else: - idle_dir = os.path.abspath(sys.path[0]) + idle_dir = os.path.dirname(idlelib.__file__) for ctype in conf.config_types: - config_path = os.path.join(idle_dir, '../config-%s.def' % ctype) + config_path = os.path.join(idle_dir, 'config-%s.def' % ctype) with open(config_path, 'r') as f: cls.config_string[ctype] = f.read() diff --git a/Lib/idlelib/idle_test/test_config_key.py b/Lib/test/test_idle/test_config_key.py similarity index 99% rename from Lib/idlelib/idle_test/test_config_key.py rename to Lib/test/test_idle/test_config_key.py index bf66cadf57cd3c..3bd59f7c1bec85 100644 --- a/Lib/idlelib/idle_test/test_config_key.py +++ b/Lib/test/test_idle/test_config_key.py @@ -10,8 +10,8 @@ import unittest from unittest import mock from tkinter import Tk, TclError -from idlelib.idle_test.mock_idle import Func -from idlelib.idle_test.mock_tk import Mbox_func +from test.test_idle.mock_idle import Func +from test.test_idle.mock_tk import Mbox_func gkd = config_key.GetKeysDialog diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/test/test_idle/test_configdialog.py similarity index 99% rename from Lib/idlelib/idle_test/test_configdialog.py rename to Lib/test/test_idle/test_configdialog.py index 3005ce08c9bf43..d1627b3921d90a 100644 --- a/Lib/idlelib/idle_test/test_configdialog.py +++ b/Lib/test/test_idle/test_configdialog.py @@ -7,7 +7,7 @@ requires('gui') import unittest from unittest import mock -from idlelib.idle_test.mock_idle import Func +from test.test_idle.mock_idle import Func from tkinter import (Tk, StringVar, IntVar, BooleanVar, DISABLED, NORMAL) from idlelib import config from idlelib.configdialog import idleConf, changes, tracers diff --git a/Lib/idlelib/idle_test/test_debugger.py b/Lib/test/test_idle/test_debugger.py similarity index 100% rename from Lib/idlelib/idle_test/test_debugger.py rename to Lib/test/test_idle/test_debugger.py diff --git a/Lib/idlelib/idle_test/test_debugger_r.py b/Lib/test/test_idle/test_debugger_r.py similarity index 100% rename from Lib/idlelib/idle_test/test_debugger_r.py rename to Lib/test/test_idle/test_debugger_r.py diff --git a/Lib/idlelib/idle_test/test_debugobj.py b/Lib/test/test_idle/test_debugobj.py similarity index 100% rename from Lib/idlelib/idle_test/test_debugobj.py rename to Lib/test/test_idle/test_debugobj.py diff --git a/Lib/idlelib/idle_test/test_debugobj_r.py b/Lib/test/test_idle/test_debugobj_r.py similarity index 100% rename from Lib/idlelib/idle_test/test_debugobj_r.py rename to Lib/test/test_idle/test_debugobj_r.py diff --git a/Lib/idlelib/idle_test/test_delegator.py b/Lib/test/test_idle/test_delegator.py similarity index 100% rename from Lib/idlelib/idle_test/test_delegator.py rename to Lib/test/test_idle/test_delegator.py diff --git a/Lib/idlelib/idle_test/test_editmenu.py b/Lib/test/test_idle/test_editmenu.py similarity index 100% rename from Lib/idlelib/idle_test/test_editmenu.py rename to Lib/test/test_idle/test_editmenu.py diff --git a/Lib/idlelib/idle_test/test_editor.py b/Lib/test/test_idle/test_editor.py similarity index 100% rename from Lib/idlelib/idle_test/test_editor.py rename to Lib/test/test_idle/test_editor.py diff --git a/Lib/idlelib/idle_test/test_filelist.py b/Lib/test/test_idle/test_filelist.py similarity index 100% rename from Lib/idlelib/idle_test/test_filelist.py rename to Lib/test/test_idle/test_filelist.py diff --git a/Lib/idlelib/idle_test/test_format.py b/Lib/test/test_idle/test_format.py similarity index 99% rename from Lib/idlelib/idle_test/test_format.py rename to Lib/test/test_idle/test_format.py index e5e903688597aa..3dce202fc4b047 100644 --- a/Lib/idlelib/idle_test/test_format.py +++ b/Lib/test/test_idle/test_format.py @@ -6,7 +6,7 @@ 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 +from test.test_idle.mock_idle import Editor as MockEditor class Is_Get_Test(unittest.TestCase): @@ -52,7 +52,7 @@ class FindTest(unittest.TestCase): @classmethod def setUpClass(cls): - from idlelib.idle_test.mock_tk import Text + from test.test_idle.mock_tk import Text cls.text = Text() def runcase(self, inserttext, stopline, expected): diff --git a/Lib/idlelib/idle_test/test_grep.py b/Lib/test/test_idle/test_grep.py similarity index 96% rename from Lib/idlelib/idle_test/test_grep.py rename to Lib/test/test_idle/test_grep.py index a0b5b69171879c..6b5013d53c4cca 100644 --- a/Lib/idlelib/idle_test/test_grep.py +++ b/Lib/test/test_idle/test_grep.py @@ -8,7 +8,7 @@ from idlelib import grep import unittest from test.support import captured_stdout -from idlelib.idle_test.mock_tk import Var +from test.test_idle.mock_tk import Var import os import re @@ -89,7 +89,7 @@ def test_base(self): def test_recurse(self): ff = grep.findfiles parent = os.path.dirname(self.path) - grepfile = os.path.join(parent, 'grep.py') + test_os = os.path.join(parent, 'test_os.py') pat = '*.py' # Get Python files only in parent directory. @@ -97,7 +97,7 @@ def test_recurse(self): parent_size = len(filelist) # Lots of Python files in idlelib. self.assertGreater(parent_size, 20) - self.assertIn(grepfile, filelist) + self.assertIn(test_os, filelist) # Without subdirectories, this file isn't returned. self.assertNotIn(self.realpath, filelist) @@ -105,7 +105,7 @@ def test_recurse(self): filelist = list(ff(parent, pat, True)) # More files found now. self.assertGreater(len(filelist), parent_size) - self.assertIn(grepfile, filelist) + self.assertIn(test_os, filelist) # This file exists in list now. self.assertIn(self.realpath, filelist) diff --git a/Lib/idlelib/idle_test/test_help.py b/Lib/test/test_idle/test_help.py similarity index 89% rename from Lib/idlelib/idle_test/test_help.py rename to Lib/test/test_idle/test_help.py index b542659981894d..cdd1b697a9e672 100644 --- a/Lib/idlelib/idle_test/test_help.py +++ b/Lib/test/test_idle/test_help.py @@ -1,5 +1,6 @@ "Test help, coverage 87%." +import idlelib from idlelib import help import unittest from test.support import requires @@ -15,7 +16,7 @@ def setUpClass(cls): "By itself, this tests that file parsed without exception." cls.root = root = Tk() root.withdraw() - helpfile = join(dirname(dirname(abspath(__file__))), 'help.html') + helpfile = join(dirname(abspath(idlelib.__file__)), 'help.html') cls.frame = help.HelpFrame(root, helpfile) @classmethod diff --git a/Lib/idlelib/idle_test/test_help_about.py b/Lib/test/test_idle/test_help_about.py similarity index 98% rename from Lib/idlelib/idle_test/test_help_about.py rename to Lib/test/test_idle/test_help_about.py index b915535acac0cc..c12ee8c9151a87 100644 --- a/Lib/idlelib/idle_test/test_help_about.py +++ b/Lib/test/test_idle/test_help_about.py @@ -7,8 +7,8 @@ import unittest from test.support import requires, findfile from tkinter import Tk, TclError -from idlelib.idle_test.mock_idle import Func -from idlelib.idle_test.mock_tk import Mbox_func +from test.test_idle.mock_idle import Func +from test.test_idle.mock_tk import Mbox_func from idlelib import textview import os.path from platform import python_version diff --git a/Lib/idlelib/idle_test/test_history.py b/Lib/test/test_idle/test_history.py similarity index 99% rename from Lib/idlelib/idle_test/test_history.py rename to Lib/test/test_idle/test_history.py index 67539651444751..d2e75d93b98466 100644 --- a/Lib/idlelib/idle_test/test_history.py +++ b/Lib/test/test_idle/test_history.py @@ -6,7 +6,7 @@ import tkinter as tk from tkinter import Text as tkText -from idlelib.idle_test.mock_tk import Text as mkText +from test.test_idle.mock_tk import Text as mkText from idlelib.config import idleConf line1 = 'a = 7' diff --git a/Lib/idlelib/idle_test/test_hyperparser.py b/Lib/test/test_idle/test_hyperparser.py similarity index 100% rename from Lib/idlelib/idle_test/test_hyperparser.py rename to Lib/test/test_idle/test_hyperparser.py diff --git a/Lib/idlelib/idle_test/test_iomenu.py b/Lib/test/test_idle/test_iomenu.py similarity index 100% rename from Lib/idlelib/idle_test/test_iomenu.py rename to Lib/test/test_idle/test_iomenu.py diff --git a/Lib/idlelib/idle_test/test_macosx.py b/Lib/test/test_idle/test_macosx.py similarity index 100% rename from Lib/idlelib/idle_test/test_macosx.py rename to Lib/test/test_idle/test_macosx.py diff --git a/Lib/idlelib/idle_test/test_mainmenu.py b/Lib/test/test_idle/test_mainmenu.py similarity index 100% rename from Lib/idlelib/idle_test/test_mainmenu.py rename to Lib/test/test_idle/test_mainmenu.py diff --git a/Lib/idlelib/idle_test/test_multicall.py b/Lib/test/test_idle/test_multicall.py similarity index 100% rename from Lib/idlelib/idle_test/test_multicall.py rename to Lib/test/test_idle/test_multicall.py diff --git a/Lib/idlelib/idle_test/test_outwin.py b/Lib/test/test_idle/test_outwin.py similarity index 98% rename from Lib/idlelib/idle_test/test_outwin.py rename to Lib/test/test_idle/test_outwin.py index e347bfca7f191a..b243893e451c7e 100644 --- a/Lib/idlelib/idle_test/test_outwin.py +++ b/Lib/test/test_idle/test_outwin.py @@ -4,8 +4,8 @@ import unittest from test.support import requires from tkinter import Tk, Text -from idlelib.idle_test.mock_tk import Mbox_func -from idlelib.idle_test.mock_idle import Func +from test.test_idle.mock_tk import Mbox_func +from test.test_idle.mock_idle import Func from unittest import mock diff --git a/Lib/idlelib/idle_test/test_parenmatch.py b/Lib/test/test_idle/test_parenmatch.py similarity index 98% rename from Lib/idlelib/idle_test/test_parenmatch.py rename to Lib/test/test_idle/test_parenmatch.py index 2e10d7cd36760f..1cf2b67ba062ee 100644 --- a/Lib/idlelib/idle_test/test_parenmatch.py +++ b/Lib/test/test_idle/test_parenmatch.py @@ -1,7 +1,7 @@ """Test parenmatch, coverage 91%. This must currently be a gui test because ParenMatch methods use -several text methods not defined on idlelib.idle_test.mock_tk.Text. +several text methods not defined on test.test_idle.mock_tk.Text. """ from idlelib.parenmatch import ParenMatch from test.support import requires diff --git a/Lib/idlelib/idle_test/test_pathbrowser.py b/Lib/test/test_idle/test_pathbrowser.py similarity index 98% rename from Lib/idlelib/idle_test/test_pathbrowser.py rename to Lib/test/test_idle/test_pathbrowser.py index 13d8b9e1ba9572..9d229e5717dd90 100644 --- a/Lib/idlelib/idle_test/test_pathbrowser.py +++ b/Lib/test/test_idle/test_pathbrowser.py @@ -9,7 +9,7 @@ import pyclbr # for _modules import sys # for sys.path -from idlelib.idle_test.mock_idle import Func +from test.test_idle.mock_idle import Func import idlelib # for __file__ from idlelib import browser from idlelib.tree import TreeNode diff --git a/Lib/idlelib/idle_test/test_percolator.py b/Lib/test/test_idle/test_percolator.py similarity index 100% rename from Lib/idlelib/idle_test/test_percolator.py rename to Lib/test/test_idle/test_percolator.py diff --git a/Lib/idlelib/idle_test/test_pyparse.py b/Lib/test/test_idle/test_pyparse.py similarity index 100% rename from Lib/idlelib/idle_test/test_pyparse.py rename to Lib/test/test_idle/test_pyparse.py diff --git a/Lib/idlelib/idle_test/test_pyshell.py b/Lib/test/test_idle/test_pyshell.py similarity index 100% rename from Lib/idlelib/idle_test/test_pyshell.py rename to Lib/test/test_idle/test_pyshell.py diff --git a/Lib/idlelib/idle_test/test_query.py b/Lib/test/test_idle/test_query.py similarity index 99% rename from Lib/idlelib/idle_test/test_query.py rename to Lib/test/test_idle/test_query.py index bb12b2b08652d5..836fecf56abab9 100644 --- a/Lib/idlelib/idle_test/test_query.py +++ b/Lib/test/test_idle/test_query.py @@ -16,7 +16,7 @@ import sys from unittest import mock -from idlelib.idle_test.mock_tk import Var +from test.test_idle.mock_tk import Var # NON-GUI TESTS diff --git a/Lib/idlelib/idle_test/test_redirector.py b/Lib/test/test_idle/test_redirector.py similarity index 98% rename from Lib/idlelib/idle_test/test_redirector.py rename to Lib/test/test_idle/test_redirector.py index a97b3002afcf12..52ecc9fe3ac8d6 100644 --- a/Lib/idlelib/idle_test/test_redirector.py +++ b/Lib/test/test_idle/test_redirector.py @@ -4,7 +4,7 @@ import unittest from test.support import requires from tkinter import Tk, Text, TclError -from idlelib.idle_test.mock_idle import Func +from test.test_idle.mock_idle import Func class InitCloseTest(unittest.TestCase): diff --git a/Lib/idlelib/idle_test/test_replace.py b/Lib/test/test_idle/test_replace.py similarity index 99% rename from Lib/idlelib/idle_test/test_replace.py rename to Lib/test/test_idle/test_replace.py index 6c07389b29ad45..caf99b5e4d0334 100644 --- a/Lib/idlelib/idle_test/test_replace.py +++ b/Lib/test/test_idle/test_replace.py @@ -7,7 +7,7 @@ from tkinter import Tk, Text from unittest.mock import Mock -from idlelib.idle_test.mock_tk import Mbox +from test.test_idle.mock_tk import Mbox import idlelib.searchengine as se orig_mbox = se.messagebox diff --git a/Lib/idlelib/idle_test/test_rpc.py b/Lib/test/test_idle/test_rpc.py similarity index 100% rename from Lib/idlelib/idle_test/test_rpc.py rename to Lib/test/test_idle/test_rpc.py diff --git a/Lib/idlelib/idle_test/test_run.py b/Lib/test/test_idle/test_run.py similarity index 99% rename from Lib/idlelib/idle_test/test_run.py rename to Lib/test/test_idle/test_run.py index d859ffc153fcdd..e701de6d71e69e 100644 --- a/Lib/idlelib/idle_test/test_run.py +++ b/Lib/test/test_idle/test_run.py @@ -7,7 +7,7 @@ import unittest from unittest import mock import idlelib -from idlelib.idle_test.mock_idle import Func +from test.test_idle.mock_idle import Func idlelib.testing = True # Use {} for executing test user code. diff --git a/Lib/idlelib/idle_test/test_runscript.py b/Lib/test/test_idle/test_runscript.py similarity index 100% rename from Lib/idlelib/idle_test/test_runscript.py rename to Lib/test/test_idle/test_runscript.py diff --git a/Lib/idlelib/idle_test/test_scrolledlist.py b/Lib/test/test_idle/test_scrolledlist.py similarity index 100% rename from Lib/idlelib/idle_test/test_scrolledlist.py rename to Lib/test/test_idle/test_scrolledlist.py diff --git a/Lib/idlelib/idle_test/test_search.py b/Lib/test/test_idle/test_search.py similarity index 100% rename from Lib/idlelib/idle_test/test_search.py rename to Lib/test/test_idle/test_search.py diff --git a/Lib/idlelib/idle_test/test_searchbase.py b/Lib/test/test_idle/test_searchbase.py similarity index 98% rename from Lib/idlelib/idle_test/test_searchbase.py rename to Lib/test/test_idle/test_searchbase.py index 8c9c410ebaf47c..1d5e4212fd90b9 100644 --- a/Lib/idlelib/idle_test/test_searchbase.py +++ b/Lib/test/test_idle/test_searchbase.py @@ -8,8 +8,8 @@ from tkinter.ttk import Frame from idlelib import searchengine as se from idlelib import searchbase as sdb -from idlelib.idle_test.mock_idle import Func -## from idlelib.idle_test.mock_tk import Var +from test.test_idle.mock_idle import Func +## from test.test_idle.mock_tk import Var # The ## imports above & following could help make some tests gui-free. # However, they currently make radiobutton tests fail. diff --git a/Lib/idlelib/idle_test/test_searchengine.py b/Lib/test/test_idle/test_searchengine.py similarity index 99% rename from Lib/idlelib/idle_test/test_searchengine.py rename to Lib/test/test_idle/test_searchengine.py index 9d979839419586..fa0c0e80131ba5 100644 --- a/Lib/idlelib/idle_test/test_searchengine.py +++ b/Lib/test/test_idle/test_searchengine.py @@ -5,8 +5,8 @@ # from test.support import requires from tkinter import BooleanVar, StringVar, TclError # ,Tk, Text from tkinter import messagebox -from idlelib.idle_test.mock_tk import Var, Mbox -from idlelib.idle_test.mock_tk import Text as mockText +from test.test_idle.mock_tk import Var, Mbox +from test.test_idle.mock_tk import Text as mockText import re # With mock replacements, the module does not use any gui widgets. diff --git a/Lib/idlelib/idle_test/test_sidebar.py b/Lib/test/test_idle/test_sidebar.py similarity index 99% rename from Lib/idlelib/idle_test/test_sidebar.py rename to Lib/test/test_idle/test_sidebar.py index 01fd6a04d0de30..5264b094044e94 100644 --- a/Lib/idlelib/idle_test/test_sidebar.py +++ b/Lib/test/test_idle/test_sidebar.py @@ -7,7 +7,7 @@ import unittest.mock from test.support import requires, swap_attr import tkinter as tk -from idlelib.idle_test.tkinter_testing_utils import run_in_tk_mainloop +from test.test_idle.tkinter_testing_utils import run_in_tk_mainloop from idlelib.delegator import Delegator from idlelib.editor import fixwordbreaks diff --git a/Lib/idlelib/idle_test/test_squeezer.py b/Lib/test/test_idle/test_squeezer.py similarity index 100% rename from Lib/idlelib/idle_test/test_squeezer.py rename to Lib/test/test_idle/test_squeezer.py diff --git a/Lib/idlelib/idle_test/test_stackviewer.py b/Lib/test/test_idle/test_stackviewer.py similarity index 100% rename from Lib/idlelib/idle_test/test_stackviewer.py rename to Lib/test/test_idle/test_stackviewer.py diff --git a/Lib/idlelib/idle_test/test_statusbar.py b/Lib/test/test_idle/test_statusbar.py similarity index 100% rename from Lib/idlelib/idle_test/test_statusbar.py rename to Lib/test/test_idle/test_statusbar.py diff --git a/Lib/idlelib/idle_test/test_text.py b/Lib/test/test_idle/test_text.py similarity index 99% rename from Lib/idlelib/idle_test/test_text.py rename to Lib/test/test_idle/test_text.py index 0f31179e04b28f..44f8ce6a455b49 100644 --- a/Lib/idlelib/idle_test/test_text.py +++ b/Lib/test/test_idle/test_text.py @@ -195,7 +195,7 @@ class MockTextTest(TextTest, unittest.TestCase): @classmethod def setUpClass(cls): - from idlelib.idle_test.mock_tk import Text + from test.test_idle.mock_tk import Text cls.Text = Text def setUp(self): diff --git a/Lib/idlelib/idle_test/test_textview.py b/Lib/test/test_idle/test_textview.py similarity index 97% rename from Lib/idlelib/idle_test/test_textview.py rename to Lib/test/test_idle/test_textview.py index 7189378ab3dd61..913c3c124bbb42 100644 --- a/Lib/idlelib/idle_test/test_textview.py +++ b/Lib/test/test_idle/test_textview.py @@ -5,6 +5,7 @@ Using mock Text would not change this. Other mocks are used to retrieve information about calls. """ +import idlelib from idlelib import textview as tv from test.support import requires requires('gui') @@ -13,8 +14,8 @@ import unittest from tkinter import Tk, TclError, CHAR, NONE, WORD from tkinter.ttk import Button -from idlelib.idle_test.mock_idle import Func -from idlelib.idle_test.mock_tk import Mbox_func +from test.test_idle.mock_idle import Func +from test.test_idle.mock_tk import Mbox_func def setUpModule(): global root @@ -176,7 +177,7 @@ def test_bad_file(self): def test_bad_encoding(self): p = os.path - fn = p.abspath(p.join(p.dirname(__file__), '..', 'CREDITS.txt')) + fn = p.abspath(p.join(p.dirname(idlelib.__file__), 'CREDITS.txt')) view = tv.view_file(root, 'Title', fn, 'ascii', modal=False) self.assertIsNone(view) self.assertEqual(tv.showerror.title, 'Unicode Decode Error') diff --git a/Lib/idlelib/idle_test/test_tooltip.py b/Lib/test/test_idle/test_tooltip.py similarity index 100% rename from Lib/idlelib/idle_test/test_tooltip.py rename to Lib/test/test_idle/test_tooltip.py diff --git a/Lib/idlelib/idle_test/test_tree.py b/Lib/test/test_idle/test_tree.py similarity index 100% rename from Lib/idlelib/idle_test/test_tree.py rename to Lib/test/test_idle/test_tree.py diff --git a/Lib/idlelib/idle_test/test_undo.py b/Lib/test/test_idle/test_undo.py similarity index 100% rename from Lib/idlelib/idle_test/test_undo.py rename to Lib/test/test_idle/test_undo.py diff --git a/Lib/idlelib/idle_test/test_util.py b/Lib/test/test_idle/test_util.py similarity index 100% rename from Lib/idlelib/idle_test/test_util.py rename to Lib/test/test_idle/test_util.py diff --git a/Lib/idlelib/idle_test/test_warning.py b/Lib/test/test_idle/test_warning.py similarity index 100% rename from Lib/idlelib/idle_test/test_warning.py rename to Lib/test/test_idle/test_warning.py diff --git a/Lib/idlelib/idle_test/test_window.py b/Lib/test/test_idle/test_window.py similarity index 100% rename from Lib/idlelib/idle_test/test_window.py rename to Lib/test/test_idle/test_window.py diff --git a/Lib/idlelib/idle_test/test_zoomheight.py b/Lib/test/test_idle/test_zoomheight.py similarity index 100% rename from Lib/idlelib/idle_test/test_zoomheight.py rename to Lib/test/test_idle/test_zoomheight.py diff --git a/Lib/idlelib/idle_test/test_zzdummy.py b/Lib/test/test_idle/test_zzdummy.py similarity index 100% rename from Lib/idlelib/idle_test/test_zzdummy.py rename to Lib/test/test_idle/test_zzdummy.py diff --git a/Lib/idlelib/idle_test/tkinter_testing_utils.py b/Lib/test/test_idle/tkinter_testing_utils.py similarity index 100% rename from Lib/idlelib/idle_test/tkinter_testing_utils.py rename to Lib/test/test_idle/tkinter_testing_utils.py diff --git a/Makefile.pre.in b/Makefile.pre.in index 20fc89eb767c29..39c52025263e3d 100644 --- a/Makefile.pre.in +++ b/Makefile.pre.in @@ -1928,7 +1928,6 @@ LIBSUBDIRS= asyncio \ zoneinfo \ __phello__ TESTSUBDIRS= distutils/tests \ - idlelib/idle_test \ test test/audiodata \ test/capath test/cjkencodings \ test/data test/decimaltestdata \ @@ -1939,6 +1938,7 @@ TESTSUBDIRS= distutils/tests \ test/test_asyncio \ test/test_ctypes \ test/test_email test/test_email/data \ + test/test_idle \ test/test_import \ test/test_import/data \ test/test_import/data/circular_imports \ diff --git a/PCbuild/lib.pyproj b/PCbuild/lib.pyproj index 0556efe1a77d2b..b454610bbf9b27 100644 --- a/PCbuild/lib.pyproj +++ b/PCbuild/lib.pyproj @@ -400,45 +400,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1019,7 +980,45 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1601,7 +1600,6 @@ - @@ -1706,6 +1704,7 @@ + @@ -1732,7 +1731,6 @@ - @@ -1761,6 +1759,7 @@ + diff --git a/Tools/scripts/generate_stdlib_module_names.py b/Tools/scripts/generate_stdlib_module_names.py index 6f864c317da6c8..3d0716f90853a9 100644 --- a/Tools/scripts/generate_stdlib_module_names.py +++ b/Tools/scripts/generate_stdlib_module_names.py @@ -34,7 +34,6 @@ '_xxsubinterpreters', '_xxtestfuzz', 'distutils.tests', - 'idlelib.idle_test', 'test', 'xxlimited', 'xxlimited_35',