From 5b9898ed9b5f71d45d85001543363cd48eadd646 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sat, 11 Jul 2026 16:31:58 -0700 Subject: [PATCH] Update _defaults["strict"] when necessary Refs https://github.com/simonw/sqlite-utils/pull/788#issuecomment-4948505824 --- sqlite_utils/db.py | 2 ++ tests/test_transform.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/sqlite_utils/db.py b/sqlite_utils/db.py index 30a2d8d..879c49d 100644 --- a/sqlite_utils/db.py +++ b/sqlite_utils/db.py @@ -2591,6 +2591,8 @@ class Table(Queryable): self.db.execute("PRAGMA defer_foreign_keys=OFF;") if should_disable_foreign_keys: self.db.execute("PRAGMA foreign_keys=1;") + if strict is not None: + self._defaults["strict"] = strict return self def transform_sql( diff --git a/tests/test_transform.py b/tests/test_transform.py index fef6629..14f403a 100644 --- a/tests/test_transform.py +++ b/tests/test_transform.py @@ -602,6 +602,19 @@ def test_transform_to_strict_with_invalid_data(fresh_db): assert fresh_db.table_names() == ["dogs"] +def test_transform_strict_updates_default(fresh_db): + if not fresh_db.supports_strict: + pytest.skip("SQLite version does not support strict tables") + table = fresh_db.table("items", strict=True) + table.create({"id": int}) + + table.transform(strict=False) + assert table.strict is False + + table.create({"id": int}, replace=True) + assert table.strict is False + + @pytest.mark.parametrize( "indexes, transform_params", [