| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- """
- Simple auto test discovery.
- From http://stackoverflow.com/a/17004409
- """
- import os
- import sys
- import unittest
- if not hasattr(unittest.defaultTestLoader, 'discover'):
- try:
- import unittest2 as unittest
- except ImportError:
- raise ImportError('The unittest2 module is required to run tests on Python 2.6')
- def additional_tests():
- setup_file = sys.modules['__main__'].__file__
- setup_dir = os.path.abspath(os.path.dirname(setup_file))
- test_dir = os.path.join(setup_dir, 'tests')
- test_suite = unittest.defaultTestLoader.discover(test_dir)
- blacklist = []
- if '/home/travis' in __file__:
- # Skip some tests that fail on travis-ci
- blacklist.append('test_command')
- return exclude_tests(test_suite, blacklist)
- class SkipCase(unittest.TestCase):
- def skeleton_run_test(self):
- raise unittest.SkipTest("Test fails spuriously on travis-ci")
- def exclude_tests(suite, blacklist):
- """
- Example:
-
- blacklist = [
- 'test_some_test_that_should_be_skipped',
- 'test_another_test_that_should_be_skipped'
- ]
- """
- new_suite = unittest.TestSuite()
-
- for test_group in suite._tests:
- for test in test_group:
- if not hasattr(test, '_tests'):
- # e.g. ModuleImportFailure
- new_suite.addTest(test)
- continue
- for subtest in test._tests:
- method = subtest._testMethodName
- if method in blacklist:
- setattr(test,
- method,
- getattr(SkipCase(), 'skeleton_run_test'))
- new_suite.addTest(test)
- return new_suite
|