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

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