From 9de29afa7c083a24a5eabfbbc9bb3515e7026745 Mon Sep 17 00:00:00 2001 From: Guilherme Polo Date: Wed, 28 Jan 2009 20:40:48 +0000 Subject: Merged revisions 69060-69063 via svnmerge from svn+ssh://pythondev/python/trunk ........ r69060 | guilherme.polo | 2009-01-28 17:23:28 -0200 (Wed, 28 Jan 2009) | 2 lines Added support for collecting tests only from specific packages. ........ r69061 | guilherme.polo | 2009-01-28 17:28:04 -0200 (Wed, 28 Jan 2009) | 4 lines * Renaming test_tk_* to test_ttk_* since that is what they are testing. * Added ttk tests to the expected skips mapping just like where test_tcl was expected to be skipped too. ........ r69062 | guilherme.polo | 2009-01-28 18:02:01 -0200 (Wed, 28 Jan 2009) | 1 line Make sure the root windows gets destroyed ........ r69063 | guilherme.polo | 2009-01-28 18:03:26 -0200 (Wed, 28 Jan 2009) | 2 lines Issue #5083: New 'gui' resource for regrtest. ........ --- Lib/test/regrtest.py | 12 +++++++++++- Lib/test/test_tk_guionly.py | 14 -------------- Lib/test/test_tk_textonly.py | 8 -------- Lib/test/test_ttk_guionly.py | 25 +++++++++++++++++++++++++ Lib/test/test_ttk_textonly.py | 11 +++++++++++ Lib/tkinter/test/runtktests.py | 15 +++++++++++---- Lib/tkinter/test/test_ttk/test_widgets.py | 5 ++++- Misc/NEWS | 6 ++++++ 8 files changed, 68 insertions(+), 28 deletions(-) delete mode 100644 Lib/test/test_tk_guionly.py delete mode 100644 Lib/test/test_tk_textonly.py create mode 100644 Lib/test/test_ttk_guionly.py create mode 100644 Lib/test/test_ttk_textonly.py diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 43794d2..8ab0e48 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -123,6 +123,8 @@ resources to test. Currently only the following are defined: urlfetch - It is okay to download files required on testing. + gui - Run tests that require a running GUI. + To enable all resources except one, use '-uall,-'. For example, to run all the tests except for the bsddb tests, give the option '-uall,-bsddb'. @@ -176,7 +178,7 @@ if sys.platform == 'darwin': from test import support RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb', - 'decimal', 'compiler', 'subprocess', 'urlfetch') + 'decimal', 'compiler', 'subprocess', 'urlfetch', 'gui') def usage(msg): @@ -1073,6 +1075,8 @@ _expectations = { test_pty test_socketserver test_tcl + test_ttk_guionly + test_ttk_textonly test_timeout test_urllibnet test_multiprocessing @@ -1088,6 +1092,8 @@ _expectations = { test_kqueue test_ossaudiodev test_tcl + test_ttk_guionly + test_ttk_textonly test_zipimport test_zlib """, @@ -1103,6 +1109,8 @@ _expectations = { test_ossaudiodev test_pep277 test_tcl + test_ttk_guionly + test_ttk_textonly test_multiprocessing """, 'netbsd3': @@ -1117,6 +1125,8 @@ _expectations = { test_ossaudiodev test_pep277 test_tcl + test_ttk_guionly + test_ttk_textonly test_multiprocessing """, } diff --git a/Lib/test/test_tk_guionly.py b/Lib/test/test_tk_guionly.py deleted file mode 100644 index d3eb5a1c..0000000 --- a/Lib/test/test_tk_guionly.py +++ /dev/null @@ -1,14 +0,0 @@ -from test import support -from tkinter.test import runtktests - -def test_main(enable_gui=False): - if enable_gui: - if support.use_resources is None: - support.use_resources = ['gui'] - elif 'gui' not in support.use_resources: - support.use_resources.append('gui') - - support.run_unittest(*runtktests.get_tests(text=False)) - -if __name__ == '__main__': - test_main(enable_gui=True) diff --git a/Lib/test/test_tk_textonly.py b/Lib/test/test_tk_textonly.py deleted file mode 100644 index ad13244..0000000 --- a/Lib/test/test_tk_textonly.py +++ /dev/null @@ -1,8 +0,0 @@ -from test import support -from tkinter.test import runtktests - -def test_main(): - support.run_unittest(*runtktests.get_tests(gui=False)) - -if __name__ == '__main__': - test_main() diff --git a/Lib/test/test_ttk_guionly.py b/Lib/test/test_ttk_guionly.py new file mode 100644 index 0000000..bff490a --- /dev/null +++ b/Lib/test/test_ttk_guionly.py @@ -0,0 +1,25 @@ +import os +import sys +from tkinter import ttk +from tkinter.test import runtktests +from _tkinter import TclError +from test import support + +try: + ttk.Button() +except TclError as msg: + # assuming ttk is not available + raise support.TestSkipped("ttk not available: %s" % msg) + +def test_main(enable_gui=False): + if enable_gui: + if support.use_resources is None: + support.use_resources = ['gui'] + elif 'gui' not in support.use_resources: + support.use_resources.append('gui') + + support.run_unittest( + *runtktests.get_tests(text=False, packages=['test_ttk'])) + +if __name__ == '__main__': + test_main(enable_gui=True) diff --git a/Lib/test/test_ttk_textonly.py b/Lib/test/test_ttk_textonly.py new file mode 100644 index 0000000..131e420 --- /dev/null +++ b/Lib/test/test_ttk_textonly.py @@ -0,0 +1,11 @@ +import os +import sys +from test import support +from tkinter.test import runtktests + +def test_main(): + support.run_unittest( + *runtktests.get_tests(gui=False, packages=['test_ttk'])) + +if __name__ == '__main__': + test_main() diff --git a/Lib/tkinter/test/runtktests.py b/Lib/tkinter/test/runtktests.py index 3d3868f..7067594 100644 --- a/Lib/tkinter/test/runtktests.py +++ b/Lib/tkinter/test/runtktests.py @@ -19,9 +19,13 @@ def is_package(path): return True return False -def get_tests_modules(basepath=this_dir_path, gui=True): +def get_tests_modules(basepath=this_dir_path, gui=True, packages=None): """This will import and yield modules whose names start with test_ - and are inside packages found in the path starting at basepath.""" + and are inside packages found in the path starting at basepath. + + If packages is specified it should contain package names that + want their tests collected. + """ py_ext = '.py' for dirpath, dirnames, filenames in os.walk(basepath): @@ -31,6 +35,9 @@ def get_tests_modules(basepath=this_dir_path, gui=True): if is_package(dirpath) and filenames: pkg_name = dirpath[len(basepath) + len(os.sep):].replace('/', '.') + if packages and pkg_name not in packages: + continue + filenames = filter( lambda x: x.startswith('test_') and x.endswith(py_ext), filenames) @@ -48,7 +55,7 @@ def get_tests_modules(basepath=this_dir_path, gui=True): if gui: raise -def get_tests(text=True, gui=True): +def get_tests(text=True, gui=True, packages=None): """Yield all the tests in the modules found by get_tests_modules. If nogui is True, only tests that do not require a GUI will be @@ -58,7 +65,7 @@ def get_tests(text=True, gui=True): attrs.append('tests_nogui') if gui: attrs.append('tests_gui') - for module in get_tests_modules(gui=gui): + for module in get_tests_modules(gui=gui, packages=packages): for attr in attrs: for test in getattr(module, attr, ()): yield test diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py index e92d2fa..48cf614 100644 --- a/Lib/tkinter/test/test_ttk/test_widgets.py +++ b/Lib/tkinter/test/test_ttk/test_widgets.py @@ -708,10 +708,13 @@ class NotebookTest(unittest.TestCase): class TreeviewTest(unittest.TestCase): def setUp(self): - self.tv = ttk.Treeview() + self.root = support.get_tk_root() + self.tv = ttk.Treeview(self.root) def tearDown(self): self.tv.destroy() + self.root.update_idletasks() + self.root.destroy() def test_bbox(self): diff --git a/Misc/NEWS b/Misc/NEWS index 04d55fe..f591976 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -423,6 +423,12 @@ Extension Modules buffer. +Tests +----- + +- Issue #5083: New 'gui' resource for regrtest. + + Docs ---- -- cgit v0.12