blob: d12b2c53b0b09b7a30c847a058e5e397f206b33b [file] [log] [blame]
#!/usr/bin/env python
import glob
import logging
import os
import sys
import unittest
from trace import fullmodname
try:
from tests.utils import cleanup
except:
def cleanup():
pass
sys.path.insert(0, os.getcwd())
verbosity = 1
if "-q" in sys.argv or '--quiet' in sys.argv:
verbosity = 0
if "-v" in sys.argv or '--verbose' in sys.argv:
verbosity = 2
if verbosity == 0:
logging.disable(logging.CRITICAL)
elif verbosity == 1:
logging.disable(logging.ERROR)
elif verbosity == 2:
logging.basicConfig(level=logging.DEBUG)
def build_suite(folder):
# find all of the test modules
modules = map(fullmodname, glob.glob(os.path.join(folder, 'test_*.py')))
if verbosity > 0:
print "Running the tests found in the following modules:"
print modules
# load all of the tests into a suite
try:
return unittest.TestLoader().loadTestsFromNames(modules)
except Exception, exception:
# attempt to produce a more specific message
for module in modules:
__import__(module)
raise
# build and run unit test suite
unit_tests = build_suite('tests')
unittest.TextTestRunner(verbosity=verbosity).run(unit_tests)
cleanup()
# build and run functional test suite
functional_tests = build_suite('functional_tests')
unittest.TextTestRunner(verbosity=verbosity).run(functional_tests)
cleanup()