mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-23 09:24:31 +02:00
jsonify_if_needed output of convert() functions, closes #495
This commit is contained in:
parent
c7e4308e6f
commit
defa2974c6
2 changed files with 25 additions and 3 deletions
|
|
@ -2662,7 +2662,7 @@ class Table(Queryable):
|
|||
bar.update(1)
|
||||
if not v:
|
||||
return v
|
||||
return fn(v)
|
||||
return jsonify_if_needed(fn(v))
|
||||
|
||||
self.db.register_function(convert_value)
|
||||
sql = "update [{table}] set {sets}{where};".format(
|
||||
|
|
|
|||
|
|
@ -15,6 +15,14 @@ import pytest
|
|||
lambda value: value.upper(),
|
||||
{"title": "MIXED CASE", "abstract": "ABSTRACT"},
|
||||
),
|
||||
(
|
||||
"title",
|
||||
lambda value: {"upper": value.upper(), "lower": value.lower()},
|
||||
{
|
||||
"title": '{"upper": "MIXED CASE", "lower": "mixed case"}',
|
||||
"abstract": "Abstract",
|
||||
},
|
||||
),
|
||||
),
|
||||
)
|
||||
def test_convert(fresh_db, columns, fn, expected):
|
||||
|
|
@ -81,10 +89,24 @@ def test_convert_multi(fresh_db):
|
|||
table = fresh_db["table"]
|
||||
table.insert({"title": "Mixed Case"})
|
||||
table.convert(
|
||||
"title", lambda v: {"upper": v.upper(), "lower": v.lower()}, multi=True
|
||||
"title",
|
||||
lambda v: {
|
||||
"upper": v.upper(),
|
||||
"lower": v.lower(),
|
||||
"both": {
|
||||
"upper": v.upper(),
|
||||
"lower": v.lower(),
|
||||
},
|
||||
},
|
||||
multi=True,
|
||||
)
|
||||
assert list(table.rows) == [
|
||||
{"title": "Mixed Case", "upper": "MIXED CASE", "lower": "mixed case"}
|
||||
{
|
||||
"title": "Mixed Case",
|
||||
"upper": "MIXED CASE",
|
||||
"lower": "mixed case",
|
||||
"both": '{"upper": "MIXED CASE", "lower": "mixed case"}',
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue