コード例 #1
0
def test_objects_and_expression_one(patch, tree):
    """
    Ensures ExpressionVisitor.and_expression works with one node
    """
    patch.many(ExpressionVisitor, ['cmp_expression'])
    tree.child(0).data = 'cmp_expression'
    tree.children = [1]
    r = ExpressionVisitor().and_expression(tree)
    ExpressionVisitor.cmp_expression.assert_called_with(tree.child(0))
    assert r == ExpressionVisitor.cmp_expression()
コード例 #2
0
def test_objects_cmp_expression_two(patch, tree):
    """
    Ensures ExpressionVisitor.and_expression works with two nodes
    """
    patch.many(ExpressionVisitor, ['nary_expression',
                                   'arith_expression'])
    tree.child(1).data = 'cmp_operator'
    tree.children = [1, '==', 2]
    cmp_expression = ExpressionVisitor().cmp_expression
    patch.object(ExpressionVisitor, 'cmp_expression')
    r = cmp_expression(tree)
    ExpressionVisitor.nary_expression.assert_called_with(
        tree, tree.child(1).child(0), [
            ExpressionVisitor.cmp_expression(tree.child(0)),
            ExpressionVisitor.arith_expression(tree.child(2)),
        ])
    assert r == ExpressionVisitor.nary_expression()
コード例 #3
0
def test_objects_and_expression_two(patch, tree):
    """
    Ensures ExpressionVisitor.and_expression works with two nodes
    """
    patch.many(ExpressionVisitor, ['nary_expression',
                                   'cmp_expression'])
    tree.child(1).type = 'AND'
    tree.children = [1, 'and', 2]
    and_expression = ExpressionVisitor().and_expression
    patch.object(ExpressionVisitor, 'and_expression')
    r = and_expression(tree)
    ExpressionVisitor.nary_expression.assert_called_with(
        tree, tree.child(1), [
            ExpressionVisitor.and_expression(tree.child(0)),
            ExpressionVisitor.cmp_expression(tree.child(2)),
        ])
    assert r == ExpressionVisitor.nary_expression()