1+ from sql import Table
2+ from __init__ import construct_sql_query
3+
4+ def test_query_construction ():
5+ """Test query construction without a real database"""
6+
7+ # Define our test table structure
8+ users = Table ('users' )
9+
10+ print ("\n === Testing SELECT queries ===" )
11+ # Test basic select
12+ query , params = construct_sql_query (
13+ "select" ,
14+ "users" ,
15+ columns = [users .name , users .age ],
16+ where = users .age > 18
17+ )
18+ print ("Select users over 18:" )
19+ print (f"Query: { query } " )
20+ print (f"Params: { params } " )
21+
22+ # Test select with multiple conditions
23+ query , params = construct_sql_query (
24+ "select" ,
25+ "users" ,
26+ columns = [users .name , users .email ],
27+ where = (users .age > 18 ) & (users .active == True )
28+ )
29+ print ("\n Select active users over 18:" )
30+ print (f"Query: { query } " )
31+ print (f"Params: { params } " )
32+
33+ print ("\n === Testing INSERT queries ===" )
34+ query , params = construct_sql_query (
35+ "insert" ,
36+ "users" ,
37+ values = [["John Doe" , 25 , "john@example.com" , True ]]
38+ )
39+ print ("Insert new user:" )
40+ print (f"Query: { query } " )
41+ print (f"Params: { params } " )
42+
43+ print ("\n === Testing UPDATE queries ===" )
44+ query , params = construct_sql_query (
45+ "update" ,
46+ "users" ,
47+ columns = [users .active ],
48+ values = [False ],
49+ where = users .age < 18
50+ )
51+ print ("Deactivate users under 18:" )
52+ print (f"Query: { query } " )
53+ print (f"Params: { params } " )
54+
55+ print ("\n === Testing DELETE queries ===" )
56+ query , params = construct_sql_query (
57+ "delete" ,
58+ "users" ,
59+ where = users .active == False
60+ )
61+ print ("Delete inactive users:" )
62+ print (f"Query: { query } " )
63+ print (f"Params: { params } " )
64+
65+ if __name__ == "__main__" :
66+ test_query_construction ()
0 commit comments