예제 #1
0
    def test_to_xml(self):
        root = TemplateNode()
        node = TemplateMapNode()
        node.name = TemplateWordNode("COLOURS")
        node.append(TemplateWordNode("BLACK"))
        root.append(node)

        xml = root.xml_tree(self._client_context)
        self.assertIsNotNone(xml)
        xml_str = ET.tostring(xml, "utf-8").decode("utf-8")
        self.assertEqual('<template><map name="COLOURS">BLACK</map></template>', xml_str)
예제 #2
0
    def test_to_xml(self):
        root = TemplateNode()
        node = TemplateMapNode()
        node.name = TemplateWordNode("COLOURS")
        node.append(TemplateWordNode("BLACK"))
        root.append(node)

        xml = root.xml_tree(self._client_context)
        self.assertIsNotNone(xml)
        xml_str = ET.tostring(xml, "utf-8").decode("utf-8")
        self.assertEqual('<template><map name="COLOURS">BLACK</map></template>', xml_str)
예제 #3
0
    def test_no_map_for_name_defaultmap_not_set(self):
        self._client_context.brain.maps._maps['COLOURS'] = {'BLACK': 'WHITE'}

        node = TemplateMapNode()
        node.name = TemplateWordNode("UNKNOWN")
        node.append(TemplateWordNode("BLACK"))
        root = TemplateNode()
        root.append(node)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("", result)
예제 #4
0
    def test_no_map_for_name_defaultmap_not_set(self):
        self._client_context.brain.maps._maps['COLOURS'] = {'BLACK': 'WHITE'}

        node = TemplateMapNode()
        node.name = TemplateWordNode("UNKNOWN")
        node.append(TemplateWordNode("BLACK"))
        root = TemplateNode()
        root.append(node)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("unknown", result)
예제 #5
0
    def test_no_var_defaultmap_not_set(self):
        self.bot.brain.maps._maps['COLOURS'] = {'BLACK': 'WHITE'}

        node = TemplateMapNode()
        node.name = TemplateWordNode("COLOURS")
        node.append(TemplateWordNode("UNKNOWN"))
        root = TemplateNode()
        root.append(node)

        result = root.resolve(self.bot, self.clientid)
        self.assertIsNotNone(result)
        self.assertEqual("", result)
예제 #6
0
    def test_no_map_for_name_defaultmap_set(self):
        self._client_context.brain.maps._maps['COLOURS'] = {'BLACK': 'WHITE'}
        self._client_context.brain.properties.add_property('default-map', "test_value")

        node = TemplateMapNode()
        node.name = TemplateWordNode("UNKNOWN")
        node.append(TemplateWordNode("BLACK"))
        root = TemplateNode()
        root.append(node)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("test_value", result)
예제 #7
0
    def test_no_var_defaultmap_set(self):
        self._client_context.brain.maps._maps['COLOURS'] = {'BLACK': 'WHITE'}
        self._client_context.brain.properties.add_property('default-map', "test_value")

        node = TemplateMapNode()
        node.name = TemplateWordNode("COLOURS")
        node.append(TemplateWordNode("UNKNOWN"))
        root = TemplateNode()
        root.append(node)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("test_value", result)
예제 #8
0
    def test_internal_map_succesor(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        node.name = TemplateWordNode("SUCCESSOR")
        node.append(TemplateWordNode("1"))

        root.append(node)
        self.assertEqual(len(root.children), 1)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("2", result)
예제 #9
0
    def test_internal_map_singular(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        node.name = TemplateWordNode("SINGULAR")
        node.append(TemplateWordNode("HORSES"))

        root.append(node)
        self.assertEqual(len(root.children), 1)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("HORSE", result)
예제 #10
0
    def test_internal_map_plural(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        node.name = TemplateWordNode("PLURAL")
        node.append(TemplateWordNode("HORSE"))

        root.append(node)
        self.assertEqual(len(root.children), 1)

        result = root.resolve(self.bot, self.clientid)
        self.assertIsNotNone(result)
        self.assertEqual("HORSES", result)
예제 #11
0
    def test_internal_map_succesor(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        node.name = TemplateWordNode("SUCCESSOR")
        node.append(TemplateWordNode("1"))

        root.append(node)
        self.assertEqual(len(root.children), 1)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("2", result)
예제 #12
0
    def test_internal_map_predecessor(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        node.name = TemplateWordNode("PREDECESSOR")
        node.append(TemplateWordNode("2"))

        root.append(node)
        self.assertEqual(len(root.children), 1)

        result = root.resolve(self.bot, self.clientid)
        self.assertIsNotNone(result)
        self.assertEqual("1", result)
예제 #13
0
    def test_internal_map_plural(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        node.name = TemplateWordNode("PLURAL")
        node.append(TemplateWordNode("HORSE"))

        root.append(node)
        self.assertEqual(len(root.children), 1)

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("HORSES", result)
예제 #14
0
    def test_node(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        node.name = TemplateWordNode("COLOURS")
        node.append(TemplateWordNode("BLACK"))
        root.append(node)
        self.assertEqual(len(root.children), 1)

        self.bot.brain.maps._maps['COLOURS'] = {'BLACK': 'WHITE'}

        result = root.resolve(self.bot, self.clientid)
        self.assertIsNotNone(result)
        self.assertEqual("WHITE", result)
예제 #15
0
    def test_node(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateMapNode()
        self.assertEqual("", node.resolve_children(self._client_context))

        node.name = TemplateWordNode("COLOURS")
        node.append(TemplateWordNode("BLACK"))

        root.append(node)
        self.assertEqual(len(root.children), 1)

        self._client_context.brain.maps._maps['COLOURS'] = {'BLACK': 'WHITE'}

        result = root.resolve(self._client_context)
        self.assertIsNotNone(result)
        self.assertEqual("WHITE", result)
예제 #16
0
파일: graph.py 프로젝트: Doshmaku/program-y
    def parse_map_expression(self, expression, branch):

        map_node = TemplateMapNode()
        branch.children.append(map_node)

        name_found = False

        if 'name' in expression.attrib:
            node = TemplateNode()
            name_node = TemplateWordNode(expression.attrib['name'])
            node.append(name_node)
            name_found = True
            map_node.name = node

        self.parse_text(self.get_text_from_element(expression), map_node)

        for child in expression:

            if child.tag == 'name':
                node = TemplateNode()

                self.parse_text(self.get_text_from_element(child), node)
                for sub_child in child:
                    self.parse_tag_expression(sub_child, node)
                    self.parse_text(self.get_text_from_element(child), node)

                map_node.name = node
                name_found = True

            else:
                self.parse_tag_expression(child, map_node)

            self.parse_text(self.get_tail_from_element(child), map_node)

        if name_found is False:
            raise ParserException("Error, name not found", xml_element=expression)
예제 #17
0
 def __init__(self):
     TemplateMapNode.__init__(self)
예제 #18
0
 def __init__(self):
     TemplateMapNode.__init__(self)