Exemplo n.º 1
0
    def simple_condition_builder(lhs: Expression, op: str,
                                 literal: Any) -> Expression:
        if op in UNARY_OPERATORS:
            if literal is not None:
                raise ParsingException(
                    f"Right hand side operand {literal} provided to unary operator {op}"
                )
            return unary_condition(None, OPERATOR_TO_FUNCTION[op], lhs)

        else:
            if literal is None:
                raise ParsingException(
                    f"Missing right hand side operand for binary operator {op}"
                )
            return binary_condition(None, OPERATOR_TO_FUNCTION[op], lhs,
                                    preprocess_literal(op, literal))
Exemplo n.º 2
0
def test_is_x_condition_functions() -> None:
    eq_condition = binary_condition(
        ConditionFunctions.EQ, Column(None, None, "test"), Literal(None, "1")
    )
    assert is_any_binary_condition(eq_condition, ConditionFunctions.EQ)
    assert not is_any_binary_condition(eq_condition, ConditionFunctions.NEQ)

    un_condition = unary_condition(
        ConditionFunctions.IS_NOT_NULL, Column(None, None, "test")
    )
    assert is_unary_condition(un_condition, ConditionFunctions.IS_NOT_NULL)
    assert not is_unary_condition(un_condition, ConditionFunctions.IS_NULL)
    assert not is_unary_condition(eq_condition, ConditionFunctions.IS_NOT_NULL)

    almost_condition = FunctionCall(None, "isNotNullish", (Column(None, None, "test"),))
    assert is_condition(eq_condition)
    assert is_condition(un_condition)
    assert not is_condition(almost_condition)
Exemplo n.º 3
0
 def visit_unary_condition(
     self, node: Node, visited_children: Tuple[Expression, Any, str]
 ) -> Expression:
     exp, _, op = visited_children
     return unary_condition(op, exp)