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.
........
This commit is contained in:
Guilherme Polo 2009-01-28 20:40:48 +00:00
parent a7d2797e80
commit 9de29afa7c
6 changed files with 49 additions and 9 deletions

View File

@ -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
""",
}

View File

@ -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)

View File

@ -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()

View File

@ -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

View File

@ -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):

View File

@ -423,6 +423,12 @@ Extension Modules
buffer.
Tests
-----
- Issue #5083: New 'gui' resource for regrtest.
Docs
----