diff options
Diffstat (limited to 'Lib')
-rwxr-xr-x | Lib/test/regrtest.py | 12 | ||||
-rw-r--r-- | Lib/test/test_ttk_guionly.py (renamed from Lib/test/test_tk_guionly.py) | 15 | ||||
-rw-r--r-- | Lib/test/test_ttk_textonly.py (renamed from Lib/test/test_tk_textonly.py) | 5 | ||||
-rw-r--r-- | Lib/tkinter/test/runtktests.py | 15 | ||||
-rw-r--r-- | Lib/tkinter/test/test_ttk/test_widgets.py | 5 |
5 files changed, 43 insertions, 9 deletions
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,-<resource>'. 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_ttk_guionly.py index d3eb5a1c..bff490a 100644 --- a/Lib/test/test_tk_guionly.py +++ b/Lib/test/test_ttk_guionly.py @@ -1,5 +1,15 @@ -from test import support +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: @@ -8,7 +18,8 @@ def test_main(enable_gui=False): elif 'gui' not in support.use_resources: support.use_resources.append('gui') - support.run_unittest(*runtktests.get_tests(text=False)) + 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_tk_textonly.py b/Lib/test/test_ttk_textonly.py index ad13244..131e420 100644 --- a/Lib/test/test_tk_textonly.py +++ b/Lib/test/test_ttk_textonly.py @@ -1,8 +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)) + 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): |