Example #1
0
def test_objects_pow_expression_two(patch, tree):
    """
    Ensures Objects.pow_expression works with two nodes
    """
    patch.many(Objects, ['build_binary_expression', 'primary_expression',
                         'unary_expression'])
    tree.child(1).type = 'POWER'
    tree.children = [1, '+', 2]
    r = Objects.pow_expression(tree)
    Objects.build_binary_expression.assert_called_with(
        tree, tree.child(1),
        Objects.primary_expression(tree.child(0)),
        Objects.unary_expression(tree.child(2)))
    assert r == Objects.build_binary_expression()
Example #2
0
def test_objects_and_expression_two(patch, tree):
    """
    Ensures Objects.and_expression works with two nodes
    """
    patch.many(Objects, ['build_binary_expression', 'cmp_expression'])
    tree.child(1).type = 'AND'
    tree.children = [1, 'and', 2]
    and_expression = Objects.and_expression
    patch.object(Objects, 'and_expression')
    r = and_expression(tree)
    Objects.build_binary_expression.assert_called_with(
        tree, tree.child(1), Objects.and_expression(tree.child(0)),
        Objects.cmp_expression(tree.child(2)))
    assert r == Objects.build_binary_expression()
Example #3
0
def test_objects_cmp_expression_two(patch, tree):
    """
    Ensures Objects.and_expression works with two nodes
    """
    patch.many(Objects, ['build_binary_expression', 'arith_expression'])
    tree.child(1).data = 'cmp_operator'
    tree.children = [1, '==', 2]
    cmp_expression = Objects.cmp_expression
    patch.object(Objects, 'cmp_expression')
    r = cmp_expression(tree)
    Objects.build_binary_expression.assert_called_with(
        tree, tree.child(1).child(0),
        Objects.cmp_expression(tree.child(0)),
        Objects.arith_expression(tree.child(2)))
    assert r == Objects.build_binary_expression()
Example #4
0
def test_objects_mul_expression_two(patch, tree):
    """
    Ensures Objects.mul_expression works with two nodes
    """
    patch.many(Objects, ['build_binary_expression', 'unary_expression'])
    tree.child(1).data = 'mul_operator'
    tree.children = [1, '*', 2]
    mul_expression = Objects.mul_expression
    patch.object(Objects, 'mul_expression')
    r = mul_expression(tree)
    Objects.build_binary_expression.assert_called_with(
        tree, tree.child(1).child(0),
        Objects.mul_expression(tree.child(0)),
        Objects.unary_expression(tree.child(2)))
    assert r == Objects.build_binary_expression()
Example #5
0
def test_objects_build_binary_expression(patch, tree, magic):
    """
    Ensures Objects.build_binary_expression builds an expression properly
    """
    patch.many(Objects, ['expression_type'])
    op = magic()
    left = magic()
    right = magic()
    result = Objects.build_binary_expression(tree, op, left, right)
    Objects.expression_type.assert_called_with(op.type, tree)
    assert result == {
        '$OBJECT': 'expression',
        'expression': Objects.expression_type(),
        'values':  [left, right],
    }