diff options
Diffstat (limited to 'test/test_util.py')
| -rw-r--r-- | test/test_util.py | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/test/test_util.py b/test/test_util.py index 0fbbbce..32e9784 100644 --- a/test/test_util.py +++ b/test/test_util.py @@ -357,6 +357,58 @@ class TestOther(unittest.TestCase): with self.assertRaises(exception.StopExtraction): expr() + def test_extractor_filter(self): + # empty + func = util.build_extractor_filter("") + self.assertEqual(func(TestExtractor) , True) + self.assertEqual(func(TestExtractorParent), True) + self.assertEqual(func(TestExtractorAlt) , True) + + # category + func = util.build_extractor_filter("test_category") + self.assertEqual(func(TestExtractor) , False) + self.assertEqual(func(TestExtractorParent), False) + self.assertEqual(func(TestExtractorAlt) , True) + + # subcategory + func = util.build_extractor_filter("*:test_subcategory") + self.assertEqual(func(TestExtractor) , False) + self.assertEqual(func(TestExtractorParent), True) + self.assertEqual(func(TestExtractorAlt) , False) + + # basecategory + func = util.build_extractor_filter("test_basecategory") + self.assertEqual(func(TestExtractor) , False) + self.assertEqual(func(TestExtractorParent), False) + self.assertEqual(func(TestExtractorAlt) , False) + + # category-subcategory pair + func = util.build_extractor_filter("test_category:test_subcategory") + self.assertEqual(func(TestExtractor) , False) + self.assertEqual(func(TestExtractorParent), True) + self.assertEqual(func(TestExtractorAlt) , True) + + # combination + func = util.build_extractor_filter( + ["test_category", "*:test_subcategory"]) + self.assertEqual(func(TestExtractor) , False) + self.assertEqual(func(TestExtractorParent), False) + self.assertEqual(func(TestExtractorAlt) , False) + + # whitelist + func = util.build_extractor_filter( + "test_category:test_subcategory", negate=False) + self.assertEqual(func(TestExtractor) , True) + self.assertEqual(func(TestExtractorParent), False) + self.assertEqual(func(TestExtractorAlt) , False) + + func = util.build_extractor_filter( + ["test_category:test_subcategory", "*:test_subcategory_parent"], + negate=False) + self.assertEqual(func(TestExtractor) , True) + self.assertEqual(func(TestExtractorParent), True) + self.assertEqual(func(TestExtractorAlt) , False) + def test_generate_token(self): tokens = set() for _ in range(100): @@ -469,5 +521,21 @@ class TestOther(unittest.TestCase): self.assertIs(obj["key"], obj) +class TestExtractor(): + category = "test_category" + subcategory = "test_subcategory" + basecategory = "test_basecategory" + + +class TestExtractorParent(TestExtractor): + category = "test_category" + subcategory = "test_subcategory_parent" + + +class TestExtractorAlt(TestExtractor): + category = "test_category_alt" + subcategory = "test_subcategory" + + if __name__ == '__main__': unittest.main() |
