def test_objects_cmp_expression_one(patch, tree): """ Ensures Objects.and_expression works with one node """ patch.many(Objects, ['arith_expression']) tree.child(0).data = 'arith_expression' tree.children = [1] r = Objects.cmp_expression(tree) Objects.arith_expression.assert_called_with(tree.child(0)) assert r == Objects.arith_expression()
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()
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()