summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Douard <david.douard@logilab.fr>2009-10-08 13:18:28 +0200
committerDavid Douard <david.douard@logilab.fr>2009-10-08 13:18:28 +0200
commit166e3151585127b5569858794050bc5c18acfdd6 (patch)
tree4e7f72b4445bcd2457847204c05aed05f603e3c7
parent1c227f7ccb0075d9748f320ebc200ec160858ad6 (diff)
downloadlogilab-common-166e3151585127b5569858794050bc5c18acfdd6.tar.gz
add unit tests for class tagging feature
-rw-r--r--test/unittest_testlib.py57
1 files changed, 56 insertions, 1 deletions
diff --git a/test/unittest_testlib.py b/test/unittest_testlib.py
index 1bf5123..5e37cf0 100644
--- a/test/unittest_testlib.py
+++ b/test/unittest_testlib.py
@@ -20,7 +20,7 @@ except NameError:
from unittest import TestSuite
-from logilab.common.testlib import TestCase, SkipAwareTextTestRunner
+from logilab.common.testlib import TestCase, SkipAwareTextTestRunner, Tags
from logilab.common.testlib import mock_object, NonStrictTestLoader, create_files
from logilab.common.testlib import capture_stdout, unittest_main, InnerTest
from logilab.common.testlib import with_tempdir, tag
@@ -776,6 +776,21 @@ class TagTC(TestCase):
self.func = bob
+ class TagTestTC(TestCase):
+ tags = Tags(('one', 'two'))
+
+ def test_one(self):
+ self.assertTrue(True)
+
+ @tag('two', 'three')
+ def test_two(self):
+ self.assertTrue(True)
+
+ @tag('three')
+ def test_three(self):
+ self.assertTrue(True)
+ self.cls = TagTestTC
+
def test_tag_decorator(self):
bob = self.func
@@ -804,5 +819,45 @@ class TagTC(TestCase):
self.assertTrue(tags.match('not other or (testing and bibi)'))
self.assertTrue(tags.match('other or (testing and bob)'))
+ def test_tagged_class(self):
+ def options(tags):
+ class Options(object):
+ tags_pattern = tags
+ return Options()
+
+ cls = self.cls
+
+ runner = SkipAwareTextTestRunner()
+ self.assertTrue(runner.does_match_tags(cls.test_one))
+ self.assertTrue(runner.does_match_tags(cls.test_two))
+ self.assertTrue(runner.does_match_tags(cls.test_three))
+
+ runner = SkipAwareTextTestRunner(options=options('one'))
+ self.assertTrue(runner.does_match_tags(cls.test_one))
+ self.assertFalse(runner.does_match_tags(cls.test_two))
+ self.assertFalse(runner.does_match_tags(cls.test_three))
+
+ runner = SkipAwareTextTestRunner(options=options('two'))
+ self.assertTrue(runner.does_match_tags(cls.test_one))
+ self.assertTrue(runner.does_match_tags(cls.test_two))
+ self.assertFalse(runner.does_match_tags(cls.test_three))
+
+ runner = SkipAwareTextTestRunner(options=options('three'))
+ self.assertFalse(runner.does_match_tags(cls.test_one))
+ self.assertTrue(runner.does_match_tags(cls.test_two))
+ self.assertTrue(runner.does_match_tags(cls.test_three))
+
+ runner = SkipAwareTextTestRunner(options=options('two or three'))
+ self.assertTrue(runner.does_match_tags(cls.test_one))
+ self.assertTrue(runner.does_match_tags(cls.test_two))
+ self.assertTrue(runner.does_match_tags(cls.test_three))
+
+ runner = SkipAwareTextTestRunner(options=options('two and three'))
+ self.assertFalse(runner.does_match_tags(cls.test_one))
+ self.assertTrue(runner.does_match_tags(cls.test_two))
+ self.assertFalse(runner.does_match_tags(cls.test_three))
+
+
+
if __name__ == '__main__':
unittest_main()