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.
........
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 @@
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 @@
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 @@
test_pty
test_socketserver
test_tcl
+ test_ttk_guionly
+ test_ttk_textonly
test_timeout
test_urllibnet
test_multiprocessing
@@ -1088,6 +1092,8 @@
test_kqueue
test_ossaudiodev
test_tcl
+ test_ttk_guionly
+ test_ttk_textonly
test_zipimport
test_zlib
""",
@@ -1103,6 +1109,8 @@
test_ossaudiodev
test_pep277
test_tcl
+ test_ttk_guionly
+ test_ttk_textonly
test_multiprocessing
""",
'netbsd3':
@@ -1117,6 +1125,8 @@
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 @@
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 @@
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 @@
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 @@
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 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 @@
buffer.
+Tests
+-----
+
+- Issue #5083: New 'gui' resource for regrtest.
+
+
Docs
----