def test_arithmetic(): assert str(computefull(t['amount'] + t['id'], s)) == \ str(sa.select([s.c.amount + s.c.id])) assert str(compute(t['amount'] + t['id'], s)) == str(s.c.amount + s.c.id) assert str(compute(t['amount'] * t['id'], s)) == str(s.c.amount * s.c.id) assert str(computefull(t['amount'] + t['id'] * 2, s)) == \ str(sa.select([s.c.amount + s.c.id * 2]))
def test_arithmetic(): assert str(computefull(t['amount'] + t['id'], s)) == \ str(sa.select([s.c.amount + s.c.id])) assert str(compute(t['amount'] + t['id'], s)) == str(s.c.amount + s.c.id) assert str(compute(t['amount'] * t['id'], s)) == str(s.c.amount * s.c.id) assert str(compute(t['amount'] * 2, s)) == str(s.c.amount * 2) assert str(compute(2 * t['amount'], s)) == str(2 * s.c.amount) assert (str(compute(~(t['amount'] > 10), s)) == "~(accounts.amount > :amount_1)") assert str(computefull(t['amount'] + t['id'] * 2, s)) == \ str(sa.select([s.c.amount + s.c.id * 2]))
def test_nunique(): result = str(computefull(nunique(t['amount']), s)) print(result) assert 'distinct' in result.lower() assert 'count' in result.lower() assert 'amount' in result.lower()
def test_table(): result = str(computefull(t, s)) expected = """ SELECT accounts.name, accounts.amount, accounts.id FROM accounts """.strip() assert normalize(result) == normalize(expected)
def test_nunique_table(): result = normalize(str(computefull(t.nunique(), s))) expected = normalize("""SELECT count(alias.id) AS tbl_row_count FROM (SELECT DISTINCT accounts.name AS name, accounts.amount AS amount, accounts.id AS id FROM accounts) as alias""") assert result == expected