aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_util.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_util.py')
-rw-r--r--test/test_util.py68
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()