Skip to content

Commit 9cda5b0

Browse files
committed
Handle dict/tuple/list mapping to TEXT, closes #338
1 parent 84007df commit 9cda5b0

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

sqlite_utils/db.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ class Default:
168168
bool: "INTEGER",
169169
str: "TEXT",
170170
dict: "TEXT",
171+
tuple: "TEXT",
172+
list: "TEXT",
171173
bytes.__class__: "BLOB",
172174
bytes: "BLOB",
173175
memoryview: "BLOB",

tests/test_create.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1040,3 +1040,30 @@ def test_create_with_nested_bytes(fresh_db):
10401040
)
10411041
def test_quote(fresh_db, input, expected):
10421042
assert fresh_db.quote(input) == expected
1043+
1044+
1045+
@pytest.mark.parametrize(
1046+
"columns,expected_sql_middle",
1047+
(
1048+
(
1049+
{"id": int},
1050+
"[id] INTEGER",
1051+
),
1052+
(
1053+
{"col": dict},
1054+
"[col] TEXT",
1055+
),
1056+
(
1057+
{"col": tuple},
1058+
"[col] TEXT",
1059+
),
1060+
(
1061+
{"col": list},
1062+
"[col] TEXT",
1063+
),
1064+
),
1065+
)
1066+
def test_create_table_sql(fresh_db, columns, expected_sql_middle):
1067+
sql = fresh_db.create_table_sql("t", columns)
1068+
middle = sql.split("(")[1].split(")")[0].strip()
1069+
assert middle == expected_sql_middle

0 commit comments

Comments
 (0)