예제 #1
0
    def test_to_xml(self):
        root = TemplateNode()
        node = TemplateIntervalNode()
        node.format = TemplateWordNode("%c")
        node.style = TemplateWordNode("years")
        node.interval_from = TemplateWordNode("Thu Oct 6 16:35:11 2014")
        node.interval_to = TemplateWordNode("Fri Oct 7 16:35:11 2016")
        root.append(node)

        xml = root.xml_tree(self.bot, self.clientid)
        self.assertIsNotNone(xml)
        xml_str = ET.tostring(xml, "utf-8").decode("utf-8")
        self.assertEqual('<template><interval format="%c" style="years"><from>Thu Oct 6 16:35:11 2014</from><to>Fri Oct 7 16:35:11 2016</to></interval></template>', xml_str)
예제 #2
0
    def test_to_xml_no_to(self):
        root = TemplateNode()
        node = TemplateIntervalNode()
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("years")
        node.interval_from = TemplateWordNode("Thu Oct 6 16:35:11 2014")
        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><interval format="%c" style="years"><from>Thu Oct 6 16:35:11 2014</from></interval></template>',
            xml_str)
예제 #3
0
    def test_node_ymdhms(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.format = TemplateWordNode("%c")
        node.style = TemplateWordNode("ymdhms")
        node.interval_from = TemplateWordNode("Thu Jul 14 16:33:09 2014")
        node.interval_to = TemplateWordNode("Fri Oct 7 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self.bot, self.clientid)
        self.assertIsNotNone(response)
        self.assertEqual(response, "2 years, 2 months, 23 days, 0 hours, 2 minutes, 2 seconds")
예제 #4
0
    def test_node_days(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("days")
        node.interval_from = TemplateWordNode("Thu Oct  6 16:35:11 2016")
        node.interval_to = TemplateWordNode("Fri Oct  7 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self._client_context)
        self.assertIsNotNone(response)
        self.assertEqual(response, "1")
예제 #5
0
    def test_node_hours(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.format = TemplateWordNode("%c")
        node.style = TemplateWordNode("hours")
        node.interval_from = TemplateWordNode("Thu Oct  7 12:35:11 2016")
        node.interval_to = TemplateWordNode("Fri Oct  7 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self.bot, self.clientid)
        self.assertIsNotNone(response)
        self.assertEqual(response, "4")
예제 #6
0
파일: graph.py 프로젝트: Doshmaku/program-y
    def parse_interval_expression(self, expression, branch):
        # TemplateInternalNode
        # aise ParserException ("Error, interval not implemented!")

        interval_node = TemplateIntervalNode()
        branch.children.append(interval_node)

        if 'format' in expression.attrib:
            interval_node.format = TemplateWordNode(expression.attrib['format'])

        head_text = self.get_text_from_element(expression)
        self.parse_text(head_text, interval_node)

        for child in expression:
            if child.tag == 'format':
                interval_node.format = TemplateWordNode(self.get_text_from_element(child))
            elif child.tag == 'style':
                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)

                interval_node.style = node
            elif child.tag == 'from':
                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)

                interval_node.interval_from = node
            elif child.tag == 'to':
                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)

                interval_node.interval_to = node
            else:
                self.parse_tag_expression(child, interval_node)

            tail_text = self.get_tail_from_element(child)
            self.parse_text(tail_text, interval_node)

        if interval_node.format is None:
            logging.warning("Interval node, format missing !")
        if interval_node.style is None:
            logging.warning("style node, format missing !")
        if interval_node.interval_from is None:
            logging.warning("interval_from node, format missing !")
        if interval_node.interval_to is None:
            logging.warning("interval_to node, format missing !")
예제 #7
0
    def test_resolve_to_string_format_none(self):
        root = TemplateNode()
        node = TemplateIntervalNode()
        node._interval_format = None
        node.style = TemplateWordNode("days")
        node.interval_from = TemplateWordNode("Thu Oct 6 16:35:11 2014")
        node.interval_to = TemplateWordNode("Fri Oct 7 16:35:11 2016")
        root.append(node)

        self.assertEqual("732", root.resolve_to_string(self._client_context))
예제 #8
0
    def test_to_xml_attrib_as_strings(self):
        root = TemplateNode()
        node = TemplateIntervalNode()
        node.interval_format = "%c"
        node.style = "years"
        node.interval_from = "Thu Oct 6 16:35:11 2014"
        node.interval_to = "Fri Oct 7 16:35:11 2016"
        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><interval format="%c" style="years"><from>Thu Oct 6 16:35:11 2014</from><to>Fri Oct 7 16:35:11 2016</to></interval></template>',
            xml_str)
예제 #9
0
    def test_node_years(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        self.assertEqual("[INTERVAL]", node.to_string())
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("years")
        node.interval_from = TemplateWordNode("Thu Oct 06 16:35:11 2014")
        node.interval_to = TemplateWordNode("Fri Oct 07 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self._client_context)
        self.assertIsNotNone(response)
        self.assertEqual(response, "2")
예제 #10
0
    def test_node_hours(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.format = TemplateWordNode("%c")
        node.style = TemplateWordNode("hours")
        node.interval_from = TemplateWordNode("Thu Oct  7 12:35:11 2016")
        node.interval_to = TemplateWordNode("Fri Oct  7 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self.bot, self.clientid)
        self.assertIsNotNone(response)
        self.assertEqual(response, "4")
예제 #11
0
    def test_node_unknown(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("unknown")
        node.interval_from = TemplateWordNode("Thu Jul 14 16:33:09 2014")
        node.interval_to = TemplateWordNode("Fri Oct 7 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self._bot, self._clientid)
        self.assertIsNotNone(response)
        self.assertEqual(response, "")
예제 #12
0
    def test_node_days(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("days")
        node.interval_from = TemplateWordNode("Thu Oct  6 16:35:11 2016")
        node.interval_to = TemplateWordNode("Fri Oct  7 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self._client_context)
        self.assertIsNotNone(response)
        self.assertEqual(response, "1")
예제 #13
0
    def test_node_microseconds(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("microseconds")
        node.interval_from = TemplateWordNode("Thu Oct 7 16:35:09 2016")
        node.interval_to = TemplateWordNode("Fri Oct 7 16:35:09 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self._bot, self._clientid)
        self.assertIsNotNone(response)
        self.assertEqual(response, "0")
예제 #14
0
    def test_node_ymdhms(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("ymdhms")
        node.interval_from = TemplateWordNode("Thu Jul 14 16:33:09 2014")
        node.interval_to = TemplateWordNode("Fri Oct 7 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self._client_context)
        self.assertIsNotNone(response)
        self.assertEqual(response, "2 years, 2 months, 23 days, 0 hours, 2 minutes, 2 seconds")
예제 #15
0
    def test_node_years(self):
        root = TemplateNode()
        self.assertIsNotNone(root)
        self.assertIsNotNone(root.children)
        self.assertEqual(len(root.children), 0)

        node = TemplateIntervalNode()
        self.assertEqual("[INTERVAL]", node.to_string())
        node.interval_format = TemplateWordNode("%c")
        node.style = TemplateWordNode("years")
        node.interval_from = TemplateWordNode("Thu Oct 06 16:35:11 2014")
        node.interval_to = TemplateWordNode("Fri Oct 07 16:35:11 2016")

        self.assertIsNotNone(node)

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

        response = root.resolve(self._client_context)
        self.assertIsNotNone(response)
        self.assertEqual(response, "2")
예제 #16
0
 def __init__(self):
     TemplateIntervalNode.__init__(self)
예제 #17
0
 def __init__(self):
     TemplateIntervalNode.__init__(self)