diff --git a/Lib/idlelib/CallTips.py b/Lib/idlelib/CallTips.py --- a/Lib/idlelib/CallTips.py +++ b/Lib/idlelib/CallTips.py @@ -264,4 +264,7 @@ print("%d of %d tests failed" % (num_fail, num_tests)) if __name__ == '__main__': - main() + #main() + from unittest import main + from idlelib.Itest import test_calltips as t + main(t, verbosity=2, exit=False) diff --git a/Lib/idlelib/Itest/@template.txt b/Lib/idlelib/Itest/@template.txt new file mode 100644 --- /dev/null +++ b/Lib/idlelib/Itest/@template.txt @@ -0,0 +1,24 @@ +# Cut and paste template for Itest/test_x.py. +# There are 3 blanks to fill after '.'. 'as', and '_'. + +import unittest +import idlelib. as + +class Test(unittest.TestCase): + + def test_(self): + + +if __name__ == '__main__': + unittest.main() + +# Template for running test_x.py from x.py, especially with ^F5 from editor. +# There is only one blank to fill, 'x' after 'test_'. + +if __name__ == "__main__": + from unittest import main + from idlelib.Itest import test_ as t + main(t, verbosity=2, exit=False) + +# verbosity=2 lists all test_y methods +# exit=False avoids spurious sys.exit traceback when running in Idle. \ No newline at end of file diff --git a/Lib/idlelib/Itest/__init__.py b/Lib/idlelib/Itest/__init__.py new file mode 100644 --- /dev/null +++ b/Lib/idlelib/Itest/__init__.py @@ -0,0 +1,9 @@ +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/Itest/test_calltips.py b/Lib/idlelib/Itest/test_calltips.py new file mode 100644 --- /dev/null +++ b/Lib/idlelib/Itest/test_calltips.py @@ -0,0 +1,11 @@ +import unittest +import idlelib.CallTips as ct + +class Test_get_entity(unittest.TestCase): + def test_bad_entity(self): + self.assertIsNone(ct.get_entity('1/0')) + def test_good_entity(self): + self.assertIs(ct.get_entity('int'), int) + +if __name__ == '__main__': + unittest.main() diff --git a/Lib/idlelib/Itest/test_pathbrowser.py b/Lib/idlelib/Itest/test_pathbrowser.py new file mode 100644 --- /dev/null +++ b/Lib/idlelib/Itest/test_pathbrowser.py @@ -0,0 +1,15 @@ +import unittest +import idlelib.PathBrowser as PathBrowser + +class PathBrowserTest(unittest.TestCase): + + def test_DirBrowserTreeItem(self): + # Issue16226 - make sure that getting a sublist works + try: + d = PathBrowser.DirBrowserTreeItem('') + d.GetSubList() + except Exception: + self.fail('') + +if __name__ == '__main__': + unittest.main() diff --git a/Lib/idlelib/PathBrowser.py b/Lib/idlelib/PathBrowser.py --- a/Lib/idlelib/PathBrowser.py +++ b/Lib/idlelib/PathBrowser.py @@ -95,4 +95,6 @@ mainloop() if __name__ == "__main__": - main() + from unittest import main + from idlelib.Itest import test_pathbrowser as t + main(t, verbosity=2, exit=False) diff --git a/Lib/test/test_idle.py b/Lib/test/test_idle.py new file mode 100644 --- /dev/null +++ b/Lib/test/test_idle.py @@ -0,0 +1,5 @@ +from test import support +# Skip test if tkinter wasn't built or idlelib deleted. +support.import_module('tkinter') +import unittest +unittest.main(support.import_module('idlelib.Itest'))