def test_expr_function__and_or(self): self.assertParse( qSelect(qp.Wildcard(), where_clause=qp.Or(qp.And(qp.Column('a'), qp.Column('b')), qp.And(qp.Column('c'), qp.Column('d')))), "SELECT * WHERE a AND b OR c AND d;")
def test_expr_function__and_plus_minus(self): self.assertParse( qSelect(qp.Wildcard(), where_clause=qp.And(qp.Add(qp.Column('a'), qp.Column('b')), qp.Sub(qp.Column('c'), qp.Column('d')))), "SELECT * WHERE a + b AND c - d;")
def test_expr_function__and_eq(self): self.assertParse( qSelect(qp.Wildcard(), where_clause=qp.And( qp.Equal(qp.Column('a'), qp.Constant(2)), qp.Not(qp.Equal(qp.Column('b'), qp.Constant(3))))), "SELECT * WHERE a = 2 AND b != 3;")
def test_expr_function__membership_precedence(self): self.assertParse( qSelect(qp.Wildcard(), where_clause=qp.And( qp.Contains(qp.Constant('orange'), qp.Column('tags')), qp.Contains(qp.Constant('bananas'), qp.Column('tags')))), "SELECT * WHERE 'orange' IN tags AND 'bananas' IN tags;")
def setUp(self): super().setUp() self.targets = [qp.Target(qp.Column('a'), None), qp.Target(qp.Column('b'), None)] self.expr = qp.Equal(qp.Column('d'), qp.And( qp.Function('max', [qp.Column('e')]), qp.Constant(17)))
def test_expr_paren_multi2(self): self.assertParse( qSelect([qp.Target( qp.Not(qp.Equal( qp.Column('a'), qp.Not(qp.Equal( qp.Column('b'), qp.And(qp.Constant(42), qp.Constant(17)))))), None)]), "SELECT a != (b != (42 AND 17));")
def test_binary(self): self.assertEqual( 'and_account_date', qp.get_expression_name( qp.And(qp.Column('account'), qp.Column('date'))))
def test_expr_function__and_not(self): self.assertParse( qSelect(qp.Wildcard(), where_clause=qp.And(qp.Not(qp.Column('a')), qp.Column('b'))), "SELECT * WHERE not a AND b;")
def test_expr_and(self): self.assertParse( qSelect([qp.Target(qp.And(qp.Column('a'), qp.Column('b')), None)]), "SELECT a AND b;")