Kaydet (Commit) 6785cf01 authored tarafından Guilherme Polo's avatar Guilherme Polo

Added support for collecting tests only from specific packages.

üst 4eae0784
...@@ -19,9 +19,13 @@ def is_package(path): ...@@ -19,9 +19,13 @@ def is_package(path):
return True return True
return False 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_ """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 colleted.
"""
py_ext = '.py' py_ext = '.py'
for dirpath, dirnames, filenames in os.walk(basepath): for dirpath, dirnames, filenames in os.walk(basepath):
...@@ -31,6 +35,9 @@ def get_tests_modules(basepath=this_dir_path, gui=True): ...@@ -31,6 +35,9 @@ def get_tests_modules(basepath=this_dir_path, gui=True):
if is_package(dirpath) and filenames: if is_package(dirpath) and filenames:
pkg_name = dirpath[len(basepath) + len(os.sep):].replace('/', '.') pkg_name = dirpath[len(basepath) + len(os.sep):].replace('/', '.')
if packages and pkg_name not in packages:
continue
filenames = filter( filenames = filter(
lambda x: x.startswith('test_') and x.endswith(py_ext), lambda x: x.startswith('test_') and x.endswith(py_ext),
filenames) filenames)
...@@ -45,7 +52,7 @@ def get_tests_modules(basepath=this_dir_path, gui=True): ...@@ -45,7 +52,7 @@ def get_tests_modules(basepath=this_dir_path, gui=True):
if gui: if gui:
raise 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. """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 If nogui is True, only tests that do not require a GUI will be
...@@ -55,7 +62,7 @@ def get_tests(text=True, gui=True): ...@@ -55,7 +62,7 @@ def get_tests(text=True, gui=True):
attrs.append('tests_nogui') attrs.append('tests_nogui')
if gui: if gui:
attrs.append('tests_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 attr in attrs:
for test in getattr(module, attr, ()): for test in getattr(module, attr, ()):
yield test yield test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment