From c03716922dba37c700e81b92a22ef9256440f8bd Mon Sep 17 00:00:00 2001 From: Adrien Di Mascio Date: Thu, 15 Jan 2009 14:38:47 +0100 Subject: [testlib] skip test clases whose names start with '_' --- test/unittest_testlib.py | 12 ++++++++++-- testlib.py | 21 +++++++++++---------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/test/unittest_testlib.py b/test/unittest_testlib.py index e7fcc2c..f7034ed 100644 --- a/test/unittest_testlib.py +++ b/test/unittest_testlib.py @@ -513,7 +513,7 @@ class TestLoaderTC(TestCase): for pattern, expected_count in data: yield self.assertRunCount, pattern, MyMod, expected_count - def tests_nonregr_class_skipped_option(self): + def test_nonregr_class_skipped_option(self): class MyMod: class MyTestCase(TestCase): def test_foo(self): pass @@ -525,7 +525,15 @@ class TestLoaderTC(TestCase): self.loader.skipped_patterns = self.runner.skipped_patterns = ['FooTC'] self.assertRunCount('foo', MyMod, 1) self.assertRunCount(None, MyMod, 2) - + + def test__classes_are_ignored(self): + class MyMod: + class _Base(TestCase): + def test_1(self): pass + class MyTestCase(_Base): + def test_2(self): pass + self.assertRunCount(None, MyMod, 2) + def bootstrap_print(msg, output=sys.stdout): """sys.stdout will be evaluated at function parsing time""" diff --git a/testlib.py b/testlib.py index 462ed68..f4f3fe4 100644 --- a/testlib.py +++ b/testlib.py @@ -650,7 +650,7 @@ class NonStrictTestLoader(unittest.TestLoader): if (issubclass(type(obj), (types.ClassType, type)) and issubclass(obj, unittest.TestCase)): classname = obj.__name__ - if self._this_is_skipped(classname): + if classname[0] == '_' or self._this_is_skipped(classname): continue methodnames = [] # obj is a TestCase class @@ -715,7 +715,8 @@ class NonStrictTestLoader(unittest.TestLoader): """Return a sorted sequence of method names found within testCaseClass """ is_skipped = self._this_is_skipped - if is_skipped(testCaseClass.__name__): + classname = testCaseClass.__name__ + if classname[0] == '_' or is_skipped(classname): return [] testnames = super(NonStrictTestLoader, self).getTestCaseNames( testCaseClass) @@ -825,14 +826,14 @@ Examples: sys.exit(1) self.testRunner = SkipAwareTextTestRunner(verbosity=self.verbosity, stream=self.outstream, - exitfirst=self.exitfirst, - capture=self.capture, - printonly=self.printonly, - pdbmode=self.pdbmode, - cvg=self.cvg, - test_pattern=self.test_pattern, - skipped_patterns=self.skipped_patterns, - options=self.options) + exitfirst=self.exitfirst, + capture=self.capture, + printonly=self.printonly, + pdbmode=self.pdbmode, + cvg=self.cvg, + test_pattern=self.test_pattern, + skipped_patterns=self.skipped_patterns, + options=self.options) def removeSucceededTests(obj, succTests): """ Recurcive function that removes succTests from -- cgit v1.2.1