From 5225dbb89c08a73b1af536105f7fcff64aef5638 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sun, 28 Jul 2019 17:46:49 +0300 Subject: [PATCH] Unit tests for invalid .update() pks --- tests/test_update.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/test_update.py b/tests/test_update.py index 0b99333..9fab8a8 100644 --- a/tests/test_update.py +++ b/tests/test_update.py @@ -1,3 +1,4 @@ +from sqlite_utils.db import NotFoundError import pytest @@ -22,3 +23,24 @@ def test_update_compound_pk_table(fresh_db): assert (5, 3) == pk table.update(pk, {"v": 2}) assert [{"id1": 5, "id2": 3, "v": 2}] == list(table.rows) + + +@pytest.mark.parametrize( + "pk,update_pk", + ( + (None, 2), + (None, None), + ("id1", None), + ("id1", 4), + (("id1", "id2"), None), + (("id1", "id2"), 4), + (("id1", "id2"), (4, 5)), + ), +) +def test_update_invalid_pk(fresh_db, pk, update_pk): + table = fresh_db["table"] + table.insert({"id1": 5, "id2": 3, "v": 1}, pk=pk).last_pk + with pytest.raises(NotFoundError): + table.update(update_pk, {"v": 2}) + +