@@ -68,26 +68,53 @@ def test_resolve_orders(self):
68
68
orders = SQLizer .resolve_orders (["-created_at" , "name" ])
69
69
assert orders == "created_at DESC, name ASC"
70
70
71
- def test_sqlize_value (self ):
72
- assert SQLizer .sqlize_value (None ) == "NULL"
71
+ def test_sqlize_value_v1 (self ):
72
+ assert SQLizer .sqlize_value (None , ver = 1 ) == "NULL"
73
73
74
74
raw_sql = RawSQL ("statement" )
75
- assert SQLizer .sqlize_value (raw_sql ) == raw_sql .sql
75
+ assert SQLizer .sqlize_value (raw_sql , ver = 1 ) == raw_sql .sql
76
76
cases = Cases ("is_ok" , {0 : "No" , 1 : "Yes" })
77
- assert SQLizer .sqlize_value (cases ) == cases .sql
77
+ assert SQLizer .sqlize_value (cases , ver = 1 ) == cases .sql
78
78
79
- assert SQLizer .sqlize_value (1024 ) == "1024"
80
- assert SQLizer .sqlize_value (0.125 ) == "0.125"
81
- assert SQLizer .sqlize_value (True ) == "True"
79
+ assert SQLizer .sqlize_value (GenderEnum .unknown , ver = 1 ) == "0"
80
+ assert SQLizer .sqlize_value (LocaleEnum .zh_CN , ver = 1 ) == "'zh_CN'"
81
+
82
+ assert SQLizer .sqlize_value (1024 , ver = 1 ) == "1024"
83
+ assert SQLizer .sqlize_value (0.125 , ver = 1 ) == "0.125"
84
+ assert SQLizer .sqlize_value (True , ver = 1 ) == "True"
85
+
86
+ assert (
87
+ SQLizer .sqlize_value ({"gender" : 0 , "name" : "羊淑兰" }, to_json = True , ver = 1 )
88
+ == """CAST('{"gender": 0, "name": "羊淑兰"}' AS JSON)"""
89
+ )
90
+ assert SQLizer .sqlize_value ([1 , 2 , 4 ], ver = 1 ) == "'[1, 2, 4]'"
91
+ assert SQLizer .sqlize_value (("a" , "b" , "c" ), ver = 1 ) == """'["a", "b", "c"]'"""
92
+
93
+ assert SQLizer .sqlize_value (datetime (2023 , 1 , 1 , 12 , 30 ), ver = 1 ) == "'2023-01-01 12:30:00'"
94
+
95
+ def test_escape_v2 (self ):
96
+ assert SQLizer .escape (None , ver = 2 ) == "NULL"
97
+
98
+ raw_sql = RawSQL ("statement" )
99
+ assert SQLizer .escape (raw_sql , ver = 2 ) == raw_sql .sql
100
+ cases = Cases ("is_ok" , {0 : "No" , 1 : "Yes" })
101
+ assert SQLizer .escape (cases , ver = 2 ) == cases .sql
102
+
103
+ assert SQLizer .escape (GenderEnum .unknown , ver = 2 ) == "0"
104
+ assert SQLizer .escape (LocaleEnum .zh_CN , ver = 2 ) == "'zh_CN'"
105
+
106
+ assert SQLizer .escape (1024 , ver = 2 ) == "1024"
107
+ assert SQLizer .escape (0.125 , ver = 2 ) == "0.125"
108
+ assert SQLizer .escape (True , ver = 2 ) == "1"
82
109
83
110
assert (
84
- SQLizer .sqlize_value ({"gender" : 0 , "name" : "羊淑兰" }, to_json = True )
111
+ SQLizer .escape ({"gender" : 0 , "name" : "羊淑兰" }, to_json = True , ver = 2 )
85
112
== """CAST('{"gender": 0, "name": "羊淑兰"}' AS JSON)"""
86
113
)
87
- assert SQLizer .sqlize_value ([1 , 2 , 4 ]) == "'[1, 2, 4]'"
88
- assert SQLizer .sqlize_value (("a" , "b" , "c" )) == """'["a", "b", "c"]'"""
114
+ assert SQLizer .escape ([1 , 2 , 4 ], ver = 2 ) == "'[1, 2, 4]'"
115
+ assert SQLizer .escape (("a" , "b" , "c" ), ver = 2 ) == """'["a", "b", "c"]'"""
89
116
90
- assert SQLizer .sqlize_value (datetime (2023 , 1 , 1 , 12 , 30 )) == "'2023-01-01 12 :30:00'"
117
+ assert SQLizer .escape (datetime (2023 , 1 , 1 , 12 , 30 ), ver = 2 ) == "'2023-01-01T12 :30:00'"
91
118
92
119
def test_select_custom_fields (self ):
93
120
with self .assertRaises (WrongParamsError ):
@@ -227,7 +254,7 @@ def test_update_json_field(self):
227
254
assert sql == """
228
255
UPDATE `account` SET extend =
229
256
JSON_MERGE_PATCH(JSON_SET(JSON_REMOVE(COALESCE(extend, '{}'), '$.deprecated'), '$.last_login',CAST('{"ipv4": "209.182.101.161"}' AS JSON), '$.uuid','fd04f7f2-24fc-4a73-a1d7-b6e99a464c5f'), '{"updated_at": "2022-10-30 21:34:15", "info": {"online_sec": 636}}')
230
- , active=True , name='new_name'
257
+ , active=1 , name='new_name'
231
258
WHERE `id`=8
232
259
"""
233
260
@@ -326,7 +353,7 @@ def test_insert_into_select(self):
326
353
assert archive_sql == """
327
354
INSERT INTO `account_bak`
328
355
(gender, locale, active, name, extend)
329
- SELECT gender, CASE id WHEN 3 THEN 'zh_CN' WHEN 4 THEN 'en_US' WHEN 5 THEN 'fr_FR' ELSE '' END locale, False active, CONCAT(LEFT(name, 26), ' [NEW]') name, '{}' extend
356
+ SELECT gender, CASE id WHEN 3 THEN 'zh_CN' WHEN 4 THEN 'en_US' WHEN 5 THEN 'fr_FR' ELSE '' END locale, 0 active, CONCAT(LEFT(name, 26), ' [NEW]') name, '{}' extend
330
357
FROM `account`
331
358
WHERE `id` IN (4,5,6)
332
359
"""
@@ -346,7 +373,7 @@ def test_insert_into_select(self):
346
373
assert copy_sql == """
347
374
INSERT INTO `account`
348
375
(gender, locale, active, name, extend)
349
- SELECT gender, CASE id WHEN 3 THEN 'zh_CN' WHEN 4 THEN 'en_US' WHEN 5 THEN 'fr_FR' ELSE '' END locale, False active, CONCAT(LEFT(name, 26), ' [NEW]') name, '{}' extend
376
+ SELECT gender, CASE id WHEN 3 THEN 'zh_CN' WHEN 4 THEN 'en_US' WHEN 5 THEN 'fr_FR' ELSE '' END locale, 0 active, CONCAT(LEFT(name, 26), ' [NEW]') name, '{}' extend
350
377
FROM `account`
351
378
WHERE `id` IN (4,5,6)
352
379
"""
@@ -368,9 +395,9 @@ def test_build_fly_table(self):
368
395
)
369
396
assert old_sql == """
370
397
SELECT * FROM (
371
- SELECT 7 id, False active, 1 gender
398
+ SELECT 7 id, 0 active, 1 gender
372
399
UNION
373
- SELECT 15 id, True active, 0 gender
400
+ SELECT 15 id, 1 active, 0 gender
374
401
) AS fly_table"""
375
402
376
403
new_sql = SQLizer .build_fly_table (
@@ -384,8 +411,8 @@ def test_build_fly_table(self):
384
411
assert new_sql == """
385
412
SELECT * FROM (
386
413
VALUES
387
- ROW(7, False , 1),
388
- ROW(15, True , 0)
414
+ ROW(7, 0 , 1),
415
+ ROW(15, 1 , 0)
389
416
) AS fly_table (id, active, gender)"""
390
417
391
418
def test_bulk_update_from_dicts (self ):
@@ -412,8 +439,8 @@ def test_bulk_update_from_dicts(self):
412
439
JOIN (
413
440
SELECT * FROM (
414
441
VALUES
415
- ROW(7, False, False , 1, '{"test": 1, "debug": 0}'),
416
- ROW(15, False, True , 0, '{"test": 1, "debug": 0}')
442
+ ROW(7, 0, 0 , 1, '{"test": 1, "debug": 0}'),
443
+ ROW(15, 0, 1 , 0, '{"test": 1, "debug": 0}')
417
444
) AS fly_table (id, deleted, active, gender, extend)
418
445
) tmp ON `account`.id=tmp.id AND `account`.deleted=tmp.deleted
419
446
SET `account`.active=tmp.active, `account`.gender=tmp.gender, `account`.extend=JSON_MERGE_PATCH(COALESCE(`account`.extend, '{}'), tmp.extend)
0 commit comments