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