#!/usr/bin/env python import unittest import os import re import sys sys.path.insert(0, '.') TEST_DIR = 'flake8.tests' def collect_tests(): # list files in directory tests/ names = os.listdir(TEST_DIR.replace('.', '/')) regex = re.compile("(?!_+)\w+\.py$") join = '.'.join # Make a list of the names like 'tests.test_name' names = [join([TEST_DIR, f[:-3]]) for f in names if regex.match(f)] modules = [__import__(name, fromlist=[TEST_DIR]) for name in names] load_tests = unittest.defaultTestLoader.loadTestsFromModule suites = [load_tests(m) for m in modules] suite = suites.pop() for s in suites: suite.addTests(s) return suite if __name__ == "__main__": suite = collect_tests() res = unittest.TextTestRunner(verbosity=1).run(suite) # If it was successful, we don't want to exit with code 1 raise SystemExit(not res.wasSuccessful())