Added table.update(pk, ..., alter=True)

This commit is contained in:
Simon Willison 2019-07-28 17:51:49 +03:00
commit 4ab8d46b03
4 changed files with 40 additions and 6 deletions

View file

@ -6,12 +6,12 @@ from sqlite_utils.db import (
NoObviousTable,
ForeignKey,
)
from sqlite_utils.utils import sqlite3
import collections
import datetime
import json
import pathlib
import pytest
import sqlite3
from .utils import collapse_whitespace

View file

@ -44,3 +44,23 @@ def test_update_invalid_pk(fresh_db, pk, update_pk):
table.update(update_pk, {"v": 2})
def test_update_alter(fresh_db):
table = fresh_db["table"]
rowid = table.insert({"foo": "bar"}).last_pk
table.update(rowid, {"new_col": 1.2}, alter=True)
assert [{"foo": "bar", "new_col": 1.2}] == list(table.rows)
# Let's try adding three cols at once
table.update(
rowid,
{"str_col": "str", "bytes_col": b"\xa0 has bytes", "int_col": -10},
alter=True,
)
assert [
{
"foo": "bar",
"new_col": 1.2,
"str_col": "str",
"bytes_col": b"\xa0 has bytes",
"int_col": -10,
}
] == list(table.rows)