def get_tests(app): dirs = [os.path.dirname(__file__)] + plugin_test_dirs(app.plugins) from discover import DiscoveringTestLoader loader = DiscoveringTestLoader() all_tests = unittest.TestSuite() for rootdir in dirs: tests = loader.discover(rootdir, pattern='*test*.py', top_level_dir=unittest_basedir) all_tests.addTests(tests) return all_tests
def test_discover(self): loader = DiscoveringTestLoader() original_isfile = os.path.isfile original_isdir = os.path.isdir def restore_isfile(): os.path.isfile = original_isfile os.path.isfile = lambda path: False self.addCleanup(restore_isfile) orig_sys_path = sys.path[:] def restore_path(): sys.path[:] = orig_sys_path self.addCleanup(restore_path) full_path = os.path.abspath(os.path.normpath('/foo')) self.assertRaises(ImportError, loader.discover, '/foo/bar', top_level_dir='/foo') self.assertEqual(loader._top_level_dir, full_path) self.assertIn(full_path, sys.path) os.path.isfile = lambda path: True os.path.isdir = lambda path: True def restore_isdir(): os.path.isdir = original_isdir self.addCleanup(restore_isdir) _find_tests_args = [] def _find_tests(start_dir, pattern): _find_tests_args.append((start_dir, pattern)) return ['tests'] loader._find_tests = _find_tests loader.suiteClass = str suite = loader.discover('/foo/bar/baz', 'pattern', '/foo/bar') top_level_dir = os.path.abspath(os.path.normpath('/foo/bar')) start_dir = os.path.abspath(os.path.normpath('/foo/bar/baz')) self.assertEqual(suite, "['tests']") self.assertEqual(loader._top_level_dir, top_level_dir) self.assertEqual(_find_tests_args, [(start_dir, 'pattern')]) self.assertIn(top_level_dir, sys.path)
def get_tests(app): dirs = [os.path.dirname(__file__)] + plugin_test_dirs(app.plugins) from discover import DiscoveringTestLoader loader = DiscoveringTestLoader() all_tests = unittest.TestSuite() for rootdir in dirs: tests = loader.discover(rootdir, pattern='*test*.py', top_level_dir=unittest_basedir) all_tests.addTests(tests) return all_tests
def test_discovery_from_dotted_path(self): loader = DiscoveringTestLoader() tests = [self] expectedPath = os.path.abspath(os.path.dirname(unittest2.test.__file__)) self.wasRun = False def _find_tests(start_dir, pattern): self.wasRun = True self.assertEqual(start_dir, expectedPath) return tests loader._find_tests = _find_tests suite = loader.discover('%s.test' % import_string) self.assertTrue(self.wasRun) self.assertEqual(suite._tests, tests)
def test_discover(self): loader = DiscoveringTestLoader() original_isfile = os.path.isfile original_isdir = os.path.isdir def restore_isfile(): os.path.isfile = original_isfile os.path.isfile = lambda path: False self.addCleanup(restore_isfile) orig_sys_path = sys.path[:] def restore_path(): sys.path[:] = orig_sys_path self.addCleanup(restore_path) full_path = os.path.abspath(os.path.normpath('/foo')) self.assertRaises(ImportError, loader.discover, '/foo/bar', top_level_dir='/foo') self.assertEqual(loader._top_level_dir, full_path) self.assertIn(full_path, sys.path) os.path.isfile = lambda path: True os.path.isdir = lambda path: True def restore_isdir(): os.path.isdir = original_isdir self.addCleanup(restore_isdir) _find_tests_args = [] def _find_tests(start_dir, pattern): _find_tests_args.append((start_dir, pattern)) return ['tests'] loader._find_tests = _find_tests loader.suiteClass = str suite = loader.discover('/foo/bar/baz', 'pattern', '/foo/bar') top_level_dir = os.path.abspath(os.path.normpath('/foo/bar')) start_dir = os.path.abspath(os.path.normpath('/foo/bar/baz')) self.assertEqual(suite, "['tests']") self.assertEqual(loader._top_level_dir, top_level_dir) self.assertEqual(_find_tests_args, [(start_dir, 'pattern')]) self.assertIn(top_level_dir, sys.path)
def test_discovery_from_dotted_path(self): loader = DiscoveringTestLoader() tests = [self] expectedPath = os.path.abspath(os.path.dirname( unittest2.test.__file__)) self.wasRun = False def _find_tests(start_dir, pattern): self.wasRun = True self.assertEqual(start_dir, expectedPath) return tests loader._find_tests = _find_tests suite = loader.discover('%s.test' % import_string) self.assertTrue(self.wasRun) self.assertEqual(suite._tests, tests)
def test_discover_with_modules_that_fail_to_import(self): loader = DiscoveringTestLoader() listdir = os.listdir os.listdir = lambda _: ['test_this_does_not_exist.py'] isfile = os.path.isfile os.path.isfile = lambda _: True orig_sys_path = sys.path[:] def restore(): os.path.isfile = isfile os.listdir = listdir sys.path[:] = orig_sys_path self.addCleanup(restore) suite = loader.discover('.') self.assertIn(os.getcwd(), sys.path) self.assertEqual(suite.countTestCases(), 1) test = list(list(suite)[0])[0] # extract test from suite self.assertRaises(ImportError, lambda: test.test_this_does_not_exist())
def test_discover_with_modules_that_fail_to_import(self): loader = DiscoveringTestLoader() listdir = os.listdir os.listdir = lambda _: ['test_this_does_not_exist.py'] isfile = os.path.isfile os.path.isfile = lambda _: True orig_sys_path = sys.path[:] def restore(): os.path.isfile = isfile os.listdir = listdir sys.path[:] = orig_sys_path self.addCleanup(restore) suite = loader.discover('.') self.assertIn(os.getcwd(), sys.path) self.assertEqual(suite.countTestCases(), 1) test = list(list(suite)[0])[0] # extract test from suite self.assertRaises(ImportError, lambda: test.test_this_does_not_exist())
def get_tests(self): loader = Loader() return loader.discover(".", "test_*.py", None)
import sys import unittest if sys.version_info < (2, 7): # 2.6 user, you may need ... # easy_install discover from discover import DiscoveringTestLoader test_loader = DiscoveringTestLoader() all_tests = test_loader.discover(".", pattern="test_*.py") else: all_tests = unittest.TestLoader().discover(".", pattern='test_*.py') unittest.TextTestRunner().run(all_tests)
def tests (): from discover import DiscoveringTestLoader loader = DiscoveringTestLoader() suite = loader.discover("source/test/python", pattern="*.py") return suite
def get_tests(): # pragma: no cover start_dir = os.path.dirname(__file__) test_loader = DiscoveringTestLoader() return test_loader.discover(start_dir, pattern="test_*.py")
# Requirements: # * python 2.6 backport of test discovery ( https://pypi.python.org/pypi/discover ) # * xmlrunner: https://pypi.python.org/pypi/xmlrunner/1.7.3 # * coverage.py import os from unittest import TestSuite import sys if __name__ == '__main__': from discover import DiscoveringTestLoader import xmlrunner import coverage loader = DiscoveringTestLoader() sys.path.append(os.path.join(os.path.dirname(__file__), "test")) cov = coverage.coverage(source=["src"]) cov.start() tests = loader.discover(start_dir="test", pattern='test*.py', top_level_dir="test") runner = xmlrunner.XMLTestRunner(output='test-reports') runner.run(tests) cov.stop() cov.html_report(ignore_errors=True, directory='python-coverage-html')