diff options
Diffstat (limited to 'tests/test_executor.py')
-rw-r--r-- | tests/test_executor.py | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/tests/test_executor.py b/tests/test_executor.py index 6dd530f..9dacbbf 100644 --- a/tests/test_executor.py +++ b/tests/test_executor.py @@ -58,8 +58,11 @@ class TestExecutor(unittest.TestCase): source.rename(columns={column: target.columns[i]}, inplace=True) def test_py_dialect(self): - self.assertEqual(Python().generate(parse_one("'x '''")), r"'x \''") - self.assertEqual(Python().generate(parse_one("MAP([1], [2])")), "MAP([1], [2])") + generate = Python().generate + self.assertEqual(generate(parse_one("'x '''")), r"'x \''") + self.assertEqual(generate(parse_one("MAP([1], [2])")), "MAP([1], [2])") + self.assertEqual(generate(parse_one("1 is null")), "1 == None") + self.assertEqual(generate(parse_one("x is null")), "scope[None][x] is None") def test_optimized_tpch(self): for i, (sql, optimized) in enumerate(self.sqls[:20], start=1): @@ -620,6 +623,7 @@ class TestExecutor(unittest.TestCase): ("TIMESTRTOTIME('2022-01-01')", datetime.datetime(2022, 1, 1)), ("LEFT('12345', 3)", "123"), ("RIGHT('12345', 3)", "345"), + ("DATEDIFF('2022-01-03'::date, '2022-01-01'::TIMESTAMP::DATE)", 2), ]: with self.subTest(sql): result = execute(f"SELECT {sql}") @@ -699,6 +703,21 @@ class TestExecutor(unittest.TestCase): [(2, 25.0)], ("_col_0", "_col_1"), ), + ( + "SELECT a FROM x GROUP BY a ORDER BY AVG(b)", + [(2,), (1,), (3,)], + ("a",), + ), + ( + "SELECT a, SUM(b) FROM x GROUP BY a ORDER BY COUNT(*)", + [(3, 28), (1, 50), (2, 45)], + ("a", "_col_1"), + ), + ( + "SELECT a, SUM(b) FROM x GROUP BY a ORDER BY COUNT(*) DESC", + [(1, 50), (2, 45), (3, 28)], + ("a", "_col_1"), + ), ): with self.subTest(sql): result = execute(sql, tables=tables) |