Esempio n. 1
0
def _serialize_value(value):
    """Serialize AST values into a simple string."""
    response = ""

    for element in value.elements:
        if isinstance(element, ast.TextElement):
            response += element.value

        elif isinstance(element, ast.Placeable):
            if isinstance(element.expression, ast.SelectExpression):
                default_variant = _get_default_variant(element.expression.variants)
                response += _serialize_value(default_variant.value)
            else:
                response += "{ " + serialize_expression(element.expression) + " }"

    return response
Esempio n. 2
0
def _serialize_value(value):
    """Serialize AST values into a simple string."""
    response = ''

    for element in value.elements:
        if isinstance(element, ast.TextElement):
            response += element.value

        elif isinstance(element, ast.Placeable):
            if isinstance(element.expression, ast.SelectExpression):
                default_variant = _get_default_variant(element.expression.variants)
                response += _serialize_value(default_variant.value)
            else:
                response += '{ ' + serialize_expression(element.expression) + ' }'

    return response
Esempio n. 3
0
    def test_invalid_expression(self):
        with self.assertRaisesRegex(Exception, 'Unknown expression type'):
            serialize_expression(None)

        with self.assertRaisesRegex(Exception, 'Unknown expression type'):
            serialize_expression(object())
Esempio n. 4
0
 def pretty_expr(text):
     parser = FluentParser()
     entry = parser.parse_entry(dedent_ftl(text))
     expr = entry.value.elements[0].expression
     return serialize_expression(expr)