# testhelper.py
def get_sub_modules(f, ignore = [], base = None):
import os
modules = []
top = os.path.split(f)[0]
for root, dirs, files in os.walk(top, topdown=False):
for name in files:
if '.svn' in root:
continue
if not name.endswith('.py'):
continue
pkg = root.replace(top, '')
if pkg.startswith(os.sep):
pkg = pkg[1:]
pkg = pkg.replace('/', '.').replace('\\', '.')
module = os.path.splitext(name)[0]
if name.startswith('__') or name in ignore or module in ignore:
continue
path = '.'.join([pkg, module])
if len(pkg.strip()) == 0:
path = module
if base is not None:
path = '.'.join([base, path])
modules.append(path)
return modules
# app.tests.__init__.py
import testhelper
modules = testhelper.get_sub_modules(__file__, base='time_punch.tests')
for m in modules:
exec('from %s import *' %(m))
Comments