diff options
author | David Douard <david.douard@logilab.fr> | 2009-10-08 13:18:28 +0200 |
---|---|---|
committer | David Douard <david.douard@logilab.fr> | 2009-10-08 13:18:28 +0200 |
commit | 166e3151585127b5569858794050bc5c18acfdd6 (patch) | |
tree | 4e7f72b4445bcd2457847204c05aed05f603e3c7 | |
parent | 1c227f7ccb0075d9748f320ebc200ec160858ad6 (diff) | |
download | logilab-common-166e3151585127b5569858794050bc5c18acfdd6.tar.gz |
add unit tests for class tagging feature
-rw-r--r-- | test/unittest_testlib.py | 57 |
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() |