test.py 638 B

12345678910111213141516171819202122
  1. #!/usr/bin/env python
  2. import os
  3. import re
  4. import sys
  5. import unittest
  6. TESTS_DIR = 'tests'
  7. matches = [re.match('^(test_(\w+)).\py$', f) for f in os.listdir(TESTS_DIR)]
  8. suite = unittest.TestSuite()
  9. loader = unittest.TestLoader()
  10. for match in filter(None, matches):
  11. modulename, testname = match.groups()
  12. classname = re.sub('(?:^|_)([a-z])', lambda m: m.group(1).upper(),
  13. testname) + 'Test'
  14. mod = __import__(TESTS_DIR + '.' + modulename, globals(), locals(),
  15. classname)
  16. suite.addTests(loader.loadTestsFromTestCase(getattr(mod, classname)))
  17. unittest.TextTestRunner().run(suite)