def test_multiple_roots(self): node1 = PatternRootNode() node2 = PatternRootNode() with self.assertRaises(ParserException) as raised: node1.can_add(node2) self.assertTrue(str(raised.exception).startswith("Cannot add root node to existing root node"))
def test_that_to_root(self): node1 = PatternRootNode() node2 = PatternThatNode() with self.assertRaises(ParserException) as raised: node1.can_add(node2) self.assertEqual(str(raised.exception), "Cannot add that node to root node")
def test_remove_children_with_userid(self): root = PatternRootNode() root.add_child(PatternWordNode("test1")) root.add_child(PatternWordNode("test2", userid="user1")) root.add_child(PatternWordNode("test3", userid="user1")) root.add_child(PatternWordNode("test4", userid="user2")) self.assertEquals(4, len(root.children)) root.remove_children_with_userid("user1") self.assertEquals(2, len(root.children))
def test_to_string(self): node1 = PatternRootNode() self.assertEquals("ROOT ", node1.to_string(verbose=False)) self.assertEquals("ROOT [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)]", node1.to_string(verbose=True)) node2 = PatternRootNode("testid") self.assertEquals("ROOT ", node2.to_string(verbose=False)) self.assertEquals("ROOT [testid] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)]", node2.to_string(verbose=True))
def test_root_added_to_child(self): node1 = PatternWordNode("test") node2 = PatternRootNode() with self.assertRaises(ParserException) as raised: node1.can_add(node2) self.assertTrue(str(raised.exception).startswith("Cannot add root node to child node"))
def test_parse_text_nothing(self): graph = PatternGraph(self._client_context.brain.aiml_parser) root = PatternRootNode() final_node = graph._parse_text("", root) self.assertIsNotNone(final_node) self.assertIsInstance(final_node, PatternRootNode) self.assertEqual(final_node, root)
def test_parse_text_multiple_words_whitespaces(self): graph = PatternGraph(self._client_context.brain.aiml_parser) root = PatternRootNode() final_node = graph._parse_text("HELLO \t\n\r THERE", root) self.assertIsNotNone(final_node) self.assertIsInstance(final_node, PatternWordNode) self.assertEqual(final_node.word, "THERE")
def test_parse_text_word(self): graph = PatternGraph(self._client_context.brain.aiml_parser) root = PatternRootNode() final_node = graph._parse_text("HELLO", root) self.assertIsNotNone(final_node) self.assertIsInstance(final_node, PatternWordNode) self.assertEqual(final_node.word, "HELLO")
def test_root_to_template(self): node1 = PatternTemplateNode(TemplateNode()) node2 = PatternRootNode() with self.assertRaises(ParserException) as raised: node1.can_add(node2) self.assertEqual(str(raised.exception), "Cannot add root node to template node")
def test_init_with_root(self): root = PatternRootNode() graph = PatternGraph(self._client_context.brain.aiml_parser, root_node=root) self.assertIsNotNone(graph) self.assertIsNotNone(graph.root) self.assertIsInstance(graph.root, PatternRootNode) self.assertEqual(graph.root, root)
def test_parse_text_oneormore(self): graph = PatternGraph(self._client_context.brain.aiml_parser) root = PatternRootNode() final_node = graph._parse_text("_", root) self.assertIsNotNone(final_node) self.assertIsInstance(final_node, PatternOneOrMoreWildCardNode) final_node = graph._parse_text("*", root) self.assertIsNotNone(final_node) self.assertIsInstance(final_node, PatternOneOrMoreWildCardNode)
def test_equivalent_userid(self): node1 = PatternRootNode() node2 = PatternRootNode() node3 = PatternRootNode(userid="testuser") self.assertTrue(node1.equivalent(node2)) self.assertFalse(node1.equivalent(node3))
def test_wildcard(self): wildcard = MockPatternWildCardNode("*") self.assertIsNotNone(wildcard) self.assertTrue(wildcard.is_wildcard()) with self.assertRaises(ParserException): wildcard.can_add(PatternRootNode()) wildcard.can_add(PatternWordNode("test")) self.assertEquals(["*"], wildcard.matching_wildcards())
def test_init(self): node = PatternRootNode() self.assertIsNotNone(node) self.assertTrue(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.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(PatternRootNode())) self.assertEqual(node.to_string(), "ROOT [*] [P(0)^(0)#(0)C(0)_(0)*(0)To(0)Th(0)Te(0)]") node.add_child(PatternNode()) self.assertEqual(len(node.children), 1) self.assertEqual(node.to_string(), "ROOT [*] [P(0)^(0)#(0)C(1)_(0)*(0)To(0)Th(0)Te(0)]")
def test_remove_all_types_children_with_userid(self): root = PatternRootNode() root.add_child(PatternPriorityWordNode("test1", userid="user1")) root.add_child(PatternWordNode("test2", userid="user1")) root.add_child(PatternZeroOrMoreWildCardNode('^', userid="user1")) root.add_child(PatternZeroOrMoreWildCardNode('#', userid="user1")) root.add_child(PatternOneOrMoreWildCardNode('_', userid="user1")) root.add_child(PatternOneOrMoreWildCardNode('*', userid="user1")) self.assertEquals(1, len(root.priority_words)) self.assertIsNotNone(root._0ormore_hash) self.assertIsNotNone(root._1ormore_underline) self.assertEquals(1, len(root.children)) self.assertIsNotNone(root._0ormore_arrow) self.assertIsNotNone(root._1ormore_star) root.remove_children_with_userid("user1") self.assertEquals(0, len(root.priority_words)) self.assertIsNone(root._0ormore_hash) self.assertIsNone(root._1ormore_underline) self.assertEquals(0, len(root.children)) self.assertIsNone(root._0ormore_arrow) self.assertIsNone(root._1ormore_star)
def test_parse_text_priority(self): graph = PatternGraph(self._client_context.brain.aiml_parser) root = PatternRootNode() final_node = graph._parse_text("$HELLO", root) self.assertIsNotNone(final_node) self.assertIsInstance(final_node, PatternPriorityWordNode)