mirror of
https://github.com/simonw/sqlite-utils.git
synced 2026-07-24 18:04:32 +02:00
Implemented .convert(..., where=, where_args=), refs #304
This commit is contained in:
parent
4823aff4c3
commit
69c7da5ec9
3 changed files with 55 additions and 4 deletions
|
|
@ -24,6 +24,24 @@ def test_convert(fresh_db, columns, fn, expected):
|
|||
assert list(table.rows) == [expected]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"where,where_args", (("id > 1", None), ("id > :id", {"id": 1}), ("id > ?", [1]))
|
||||
)
|
||||
def test_convert_where(fresh_db, where, where_args):
|
||||
table = fresh_db["table"]
|
||||
table.insert_all(
|
||||
[
|
||||
{"id": 1, "title": "One"},
|
||||
{"id": 2, "title": "Two"},
|
||||
],
|
||||
pk="id",
|
||||
)
|
||||
table.convert(
|
||||
"title", lambda value: value.upper(), where=where, where_args=where_args
|
||||
)
|
||||
assert list(table.rows) == [{"id": 1, "title": "One"}, {"id": 2, "title": "TWO"}]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"drop,expected",
|
||||
(
|
||||
|
|
@ -70,6 +88,28 @@ def test_convert_multi(fresh_db):
|
|||
]
|
||||
|
||||
|
||||
def test_convert_multi_where(fresh_db):
|
||||
table = fresh_db["table"]
|
||||
table.insert_all(
|
||||
[
|
||||
{"id": 1, "title": "One"},
|
||||
{"id": 2, "title": "Two"},
|
||||
],
|
||||
pk="id",
|
||||
)
|
||||
table.convert(
|
||||
"title",
|
||||
lambda v: {"upper": v.upper(), "lower": v.lower()},
|
||||
multi=True,
|
||||
where="id > ?",
|
||||
where_args=[1],
|
||||
)
|
||||
assert list(table.rows) == [
|
||||
{"id": 1, "lower": None, "title": "One", "upper": None},
|
||||
{"id": 2, "lower": "two", "title": "Two", "upper": "TWO"},
|
||||
]
|
||||
|
||||
|
||||
def test_convert_multi_exception(fresh_db):
|
||||
table = fresh_db["table"]
|
||||
table.insert({"title": "Mixed Case"})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue