11from unittest import TestCase
22from .eval import eval_sql
3- from .tables import InMemoryTables , Table
3+ from .tables import InMemoryTables , Table , Column
44
55
66class TestEvalSQL (TestCase ):
7- def test_eval_sql (self ):
7+ def test_sql (self ):
88 code = "select 1+1"
99 tables = InMemoryTables (
1010 tables = [],
@@ -13,7 +13,7 @@ def test_eval_sql(self):
1313 result = eval_sql (code = code , tables = tables , ctx = ctx )
1414 self .assertEqual (result , [{"?column?" : 2 }])
1515
16- def test_eval_select_alias (self ):
16+ def test_select_alias (self ):
1717 code = "select 1+1 as a"
1818 tables = InMemoryTables (
1919 tables = [],
@@ -22,21 +22,54 @@ def test_eval_select_alias(self):
2222 result = eval_sql (code = code , tables = tables , ctx = ctx )
2323 self .assertEqual (result , [{"a" : 2 }])
2424
25- def test_eval_aggregate_sum (self ):
26- code = "select sum (foo) from bar"
25+ def test_lower (self ):
26+ code = "select lower (foo) from bar"
2727 tables = InMemoryTables (
2828 tables = [
2929 Table (
3030 name = "bar" ,
31- columns = ["foo" ],
32- rows = [
33- {"foo" : 1 },
34- {"foo" : 2 },
35- {"foo" : 3 },
31+ columns = [Column ( name = "foo" , type = "text" ) ],
32+ data = [
33+ {"foo" : "AAA" },
34+ {"foo" : "BBB" },
35+ {"foo" : "CCC" },
3636 ],
3737 )
3838 ],
3939 )
4040 ctx = {}
4141 result = eval_sql (code = code , tables = tables , ctx = ctx )
42- self .assertEqual (result , [{"a" : 6 }])
42+ self .assertEqual (
43+ result ,
44+ [
45+ {"lower" : "aaa" },
46+ {"lower" : "bbb" },
47+ {"lower" : "ccc" },
48+ ],
49+ )
50+
51+ def test_upper (self ):
52+ code = "select upper(foo) from bar"
53+ tables = InMemoryTables (
54+ tables = [
55+ Table (
56+ name = "bar" ,
57+ columns = [Column (name = "foo" , type = "text" )],
58+ data = [
59+ {"foo" : "aaa" },
60+ {"foo" : "bbb" },
61+ {"foo" : "ccc" },
62+ ],
63+ )
64+ ],
65+ )
66+ ctx = {}
67+ result = eval_sql (code = code , tables = tables , ctx = ctx )
68+ self .assertEqual (
69+ result ,
70+ [
71+ {"upper" : "AAA" },
72+ {"upper" : "BBB" },
73+ {"upper" : "CCC" },
74+ ],
75+ )
0 commit comments