summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2009-01-15 14:38:47 +0100
committerAdrien Di Mascio <Adrien.DiMascio@logilab.fr>2009-01-15 14:38:47 +0100
commitc03716922dba37c700e81b92a22ef9256440f8bd (patch)
tree3cce8bd16167ac44895b7e3e39add0b23c7d2c57
parent187e66460d8e779ae487faace7b76ae2f85e2a68 (diff)
downloadlogilab-common-c03716922dba37c700e81b92a22ef9256440f8bd.tar.gz
[testlib] skip test clases whose names start with '_'
-rw-r--r--test/unittest_testlib.py12
-rw-r--r--testlib.py21
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