예제 #1
0
    def test_equivalent_template(self):
        node1 = PatternRegexNode({"template": "LEGION"}, "")
        node2 = PatternRegexNode({"template": "LEGION"}, "")
        node3 = PatternRegexNode({"template": "LEGION"}, "", userid="testuser")

        self.assertTrue(node1.equivalent(node2))
        self.assertFalse(node1.equivalent(node3))
예제 #2
0
    def test_equivalent_from(self):
        node1 = PatternRegexNode({"form": "今[はわ]何時"}, "")
        node2 = PatternRegexNode({"form": "今[はわ]何時"}, "")
        node3 = PatternRegexNode({"form": "今[はわ]何時"}, "", userid="testuser")

        self.assertTrue(node1.equivalent(node2))
        self.assertFalse(node1.equivalent(node3))
예제 #3
0
    def test_equivalent_pattern(self):
        node1 = PatternRegexNode({}, "^LEGION$")
        node2 = PatternRegexNode({}, "^LEGION$")
        node3 = PatternRegexNode({}, "^LEGION$", userid="testuser")

        self.assertTrue(node1.equivalent(node2))
        self.assertFalse(node1.equivalent(node3))
예제 #4
0
    def test_equivalent_template(self):
        node1 = PatternRegexNode({"template": "LEGION"}, "")
        node2 = PatternRegexNode({"template": "LEGION"}, "")
        node3 = PatternRegexNode({"template": "LEGION"}, "", userid="testuser")

        self.assertTrue(node1.equivalent(node2))
        self.assertFalse(node1.equivalent(node3))
예제 #5
0
    def test_equivalent_pattern(self):
        node1 = PatternRegexNode({}, "^LEGION$")
        node2 = PatternRegexNode({}, "^LEGION$")
        node3 = PatternRegexNode({}, "^LEGION$", userid="testuser")

        self.assertTrue(node1.equivalent(node2))
        self.assertFalse(node1.equivalent(node3))
예제 #6
0
    def test_equivalent_mixed(self):
        node1 = PatternRegexNode({}, "^LEGION$")
        node2 = PatternRegexNode({}, "^LEGION$", userid="testid")
        node3 = PatternRegexNode({}, "^LEGION$", userid="testid2")

        self._client_context.brain.regex_templates.add_regex("LEGION", re.compile("^LEGION$", re.IGNORECASE))

        node4 = PatternRegexNode({"template": "LEGION"}, "")
        node5 = PatternRegexNode({"template": "LEGION"}, "", userid="testid")
        node6 = PatternRegexNode({"template": "LEGION"}, "", userid="testid2")

        self.assertFalse(node1.equivalent(node4))
        self.assertFalse(node2.equivalent(node5))
        self.assertFalse(node3.equivalent(node6))
예제 #7
0
    def test_equivalent_mixed(self):
        node1 = PatternRegexNode({}, "^LEGION$")
        node2 = PatternRegexNode({}, "^LEGION$", userid="testid")
        node3 = PatternRegexNode({}, "^LEGION$", userid="testid2")

        self._client_context.brain.regex_templates["LEGION"] = re.compile("^LEGION$", re.IGNORECASE)

        node4 = PatternRegexNode({"template": "LEGION"}, "")
        node5 = PatternRegexNode({"template": "LEGION"}, "", userid="testid")
        node6 = PatternRegexNode({"template": "LEGION"}, "", userid="testid2")

        self.assertFalse(node1.equivalent(node4))
        self.assertFalse(node2.equivalent(node5))
        self.assertFalse(node3.equivalent(node6))
예제 #8
0
    def test_init_template(self):

        node = PatternRegexNode({"template": "LEGION"}, "")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertFalse(node.is_set())
        self.assertFalse(node.is_bot())
        self.assertTrue(node.is_regex())
        self.assertFalse(node.is_template())
        self.assertFalse(node.is_that())
        self.assertFalse(node.is_topic())
        self.assertFalse(node.is_wildcard())

        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        self.assertTrue(
            node.equivalent(PatternRegexNode({"template": "LEGION"}, "")))

        self.assertEqual(
            node.to_string(),
            "REGEX [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] template=[LEGION]"
        )
        self.assertEqual('<regex template="LEGION"></regex>\n',
                         node.to_xml(self._bot, self._clientid))
예제 #9
0
    def test_init_template(self):

        node = PatternRegexNode({"template": "LEGION"}, "")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertFalse(node.is_set())
        self.assertFalse(node.is_bot())
        self.assertTrue(node.is_regex())
        self.assertFalse(node.is_template())
        self.assertFalse(node.is_that())
        self.assertFalse(node.is_topic())
        self.assertFalse(node.is_wildcard())

        self.assertFalse(node._is_form)

        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        self.assertTrue(
            node.equivalent(PatternRegexNode({"template": "LEGION"}, "")))
예제 #10
0
    def test_init_pattern(self):

        node = PatternRegexNode({}, "^LEGION$")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertFalse(node.is_set())
        self.assertFalse(node.is_bot())
        self.assertTrue(node.is_regex())
        self.assertFalse(node.is_template())
        self.assertFalse(node.is_that())
        self.assertFalse(node.is_topic())
        self.assertFalse(node.is_wildcard())

        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        self.assertTrue(node.equivalent(PatternRegexNode({}, "^LEGION$")))

        self.assertEqual(
            node.to_string(),
            "REGEX [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)] pattern=[^LEGION$]"
        )
예제 #11
0
    def test_not_at_equivalent_at_template_level(self):
        node1 = PatternRegexNode({}, "^LEGION$")
        template1 = TemplateNode()
        template1.append(TemplateWordNode("test1"))
        node1.add_template(template1)

        node2 = PatternRegexNode({}, "^LEGION$")
        template2 = TemplateNode()
        template2.append(TemplateWordNode("test2"))
        node1.add_template(template2)

        self.assertTrue(node1.equivalent(node2))
예제 #12
0
    def test_init_template(self):

        node = PatternRegexNode({"template": "LEGION"}, "")
        self.assertIsNotNone(node)

        self.assertFalse(node.is_root())
        self.assertFalse(node.is_priority())
        self.assertFalse(node.is_wildcard())
        self.assertFalse(node.is_zero_or_more())
        self.assertFalse(node.is_one_or_more())
        self.assertFalse(node.is_set())
        self.assertFalse(node.is_bot())
        self.assertTrue(node.is_regex())
        self.assertFalse(node.is_template())
        self.assertFalse(node.is_that())
        self.assertFalse(node.is_topic())
        self.assertFalse(node.is_wildcard())

        self.assertIsNotNone(node.children)
        self.assertFalse(node.has_children())

        self.assertTrue(node.equivalent(PatternRegexNode({"template": "LEGION"}, "")))
예제 #13
0
 def test_equivalent_at_pattern_template_missing_rhs(self):
     node1 = PatternRegexNode({"template": "[A-Z]"}, "^LEGION$")
     node2 = PatternRegexNode({}, "^LEGION$")
     self.assertFalse(node1.equivalent(node2))
예제 #14
0
 def test_not_equivalent_at_pattern_template_level(self):
     node1 = PatternRegexNode({"template": ".*"}, "^LEGION$")
     node2 = PatternRegexNode({"template": "[A-Z]"}, "^LEGION$")
     self.assertFalse(node1.equivalent(node2))
예제 #15
0
    def test_equivalent_none_regex(self):
        node1 = PatternRegexNode({}, "^LEGION$")
        node2 = PatternWordNode("test")

        self.assertFalse(node1.equivalent(node2))