예제 #1
0
 def _run_children(self):
     for command in self.children:
         if isinstance(command, SetCommand):
             command.run()
     expression_parser.execute_within_context(self.context, self.expression_str)
     for command in self.children:
         if not isinstance(command, SetCommand):
             command.run()
예제 #2
0
 def _run(self):
     expression = expression_parser.parse(self.expression_str)
     if expression.function_name:  # concordion:set="blah = function(#TEXT)"
         expression_parser.execute_within_context(self.context,
                                                  self.expression_str)
     else:
         setattr(self.context, expression.variable_name,
                 get_element_content(self.element))
예제 #3
0
 def _run_children(self):
     for command in self.children:
         if isinstance(command, SetCommand):
             command.run()
     expression_parser.execute_within_context(self.context,
                                              self.expression_str)
     for command in self.children:
         if not isinstance(command, SetCommand):
             command.run()
예제 #4
0
 def _run(self):
     result = expression_parser.execute_within_context(
         self.context, self.expression_str)
     if not result:
         mark_status(Status.success, self.element)
     else:
         mark_status(Status.failure, self.element, "== true")
예제 #5
0
    def _run(self):
        variable_name = expression_parser.parse(
            self.expression_str).variable_name
        results = expression_parser.execute_within_context(
            self.context, self.expression_str)
        for result, row in itertools.izip_longest(
                results, get_table_body_rows(self.element)):
            setattr(self.context, variable_name, result)

            if result is None:
                row.attrib["class"] = (row.attrib.get("class", "") +
                                       " missing").strip()
                continue

            if row is None:
                total_columns = max(self.children, key=attrgetter(
                    "index")).index + 1  # good enough but not perfect
                row = etree.Element("tr", **{"class": "surplus"})
                for _ in xrange(total_columns):
                    etree.SubElement(row, "td")
                if self.element.xpath("//tbody"):
                    self.element.xpath("//tbody")[0].append(row)
                else:
                    self.element.append(row)

            for command in self.children:
                element = row.xpath("td")[command.index]
                command.element = element
                command.run()
예제 #6
0
 def _run(self):
     result = expression_parser.execute_within_context(self.context, self.expression_str)
     if result is not None:
         self.element.text = result
     else:
         em = etree.Element("em")
         em.text = "None"
         self.element.append(em)
예제 #7
0
 def _run(self):
     result = expression_parser.execute_within_context(
         self.context, self.expression_str)
     if result is not None:
         self.element.text = result
     else:
         em = etree.Element("em")
         em.text = "None"
         self.element.append(em)
예제 #8
0
    def _run(self):
        expression_return = expression_parser.execute_within_context(self.context, self.expression_str)
        if expression_return is None:
            expression_return = "(None)"

        result = normalize(expression_return) == get_element_content(self.element)
        if result:
            mark_status(Status.success, self.element)
        else:
            mark_status(Status.failure, self.element, expression_return)
예제 #9
0
    def _run(self):
        expression_return = expression_parser.execute_within_context(
            self.context, self.expression_str)
        if expression_return is None:
            expression_return = "(None)"

        result = normalize(expression_return) == get_element_content(
            self.element)
        if result:
            mark_status(Status.success, self.element)
        else:
            mark_status(Status.failure, self.element, expression_return)
예제 #10
0
    def _run(self):
        variable_name = expression_parser.parse(self.expression_str).variable_name
        results = expression_parser.execute_within_context(self.context, self.expression_str)
        for result, row in itertools.izip_longest(results, get_table_body_rows(self.element)):
            setattr(self.context, variable_name, result)

            if result is None:
                row.attrib["class"] = (row.attrib.get("class", "") + " missing").strip()
                continue

            if row is None:
                total_columns = max(self.children, key=attrgetter("index")).index + 1  # good enough but not perfect
                row = etree.Element("tr", **{"class": "surplus"})
                for _ in xrange(total_columns):
                    etree.SubElement(row, "td")
                if self.element.xpath("//tbody"):
                    self.element.xpath("//tbody")[0].append(row)
                else:
                    self.element.append(row)

            for command in self.children:
                element = row.xpath("td")[command.index]
                command.element = element
                command.run()
예제 #11
0
 def _run(self):
     result = expression_parser.execute_within_context(self.context, self.expression_str)
     if not result:
         mark_status(Status.success, self.element)
     else:
         mark_status(Status.failure, self.element, "== true")
예제 #12
0
 def _run(self):
     expression = expression_parser.parse(self.expression_str)
     if expression.function_name:  # concordion:set="blah = function(#TEXT)"
         expression_parser.execute_within_context(self.context, self.expression_str)
     else:
         setattr(self.context, expression.variable_name, get_element_content(self.element))