From d2436c148eb3d92f56b41666dc9b7948d2d8f389 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sun, 1 Aug 2021 21:11:40 -0700 Subject: [PATCH] Unit tests for .convert(multi=True), refs #251, #302 --- tests/test_convert.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/tests/test_convert.py b/tests/test_convert.py index 739195d..15e8026 100644 --- a/tests/test_convert.py +++ b/tests/test_convert.py @@ -1,3 +1,4 @@ +from sqlite_utils.db import BadMultiValues import pytest @@ -49,3 +50,21 @@ def test_convert_output_type(fresh_db, type, expected): table.insert({"number": "123"}) table.convert("number", lambda v: v, output="other", output_type=type, drop=True) assert list(table.rows) == [expected] + + +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 + ) + assert list(table.rows) == [ + {"title": "Mixed Case", "upper": "MIXED CASE", "lower": "mixed case"} + ] + + +def test_convert_multi_exception(fresh_db): + table = fresh_db["table"] + table.insert({"title": "Mixed Case"}) + with pytest.raises(BadMultiValues): + table.convert("title", lambda v: v.upper(), multi=True)