sqlite-utils/tests
Claude bcd9a26560
Reject Python 3.12+ autocommit connections in the Database constructor
Connections created with sqlite3.connect(autocommit=True) make
commit() a documented no-op, and autocommit=False connections are
permanently inside a transaction - in both modes every write made
by this library appeared to work in-process but was silently
discarded when the connection closed. Database() now raises
TransactionError for these connections instead of losing data.

Tests are skipped on Python versions before 3.12, where the
autocommit parameter does not exist.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UnLnhsH25Nnv7LHhekUfPd
2026-07-04 22:38:31 +00:00
..
sniff sqlite-utils insert --sniff option, closes #230 2021-02-14 11:23:12 -08:00
__init__.py Initial project layout + database table creation tools 2018-07-28 06:46:17 -07:00
conftest.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
ext.c Support entrypoints for --load-extension (#473) 2022-08-26 22:55:47 -07:00
test_analyze.py Use sqlean if available in environment (#560) 2023-06-25 16:25:51 -07:00
test_analyze_tables.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
test_atomic.py Add db.begin(), db.commit() and db.rollback() methods 2026-07-04 22:31:22 +00:00
test_attach.py db.attach(alias, filepath) method, closes #113 2021-02-18 20:56:32 -08:00
test_cli.py Remove the no-op -d/--detect-types flag from insert and upsert 2026-07-04 19:15:31 +00:00
test_cli_bulk.py --functions can take filenames, can be used multiple times (#681) 2025-11-23 21:46:51 -08:00
test_cli_convert.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
test_cli_insert.py Polish: clearer errors, corrected docstrings, setuptools pin 2026-07-04 19:13:15 +00:00
test_cli_memory.py Test for CSV headers with memory command, refs #702, #707 2026-06-21 16:05:10 -07:00
test_cli_migrate.py migrate --list is now read-only 2026-07-04 19:10:56 +00:00
test_column_affinity.py Tracer mechanism for showing underlying SQL queries 2020-09-07 14:56:59 -07:00
test_constructor.py Reject Python 3.12+ autocommit connections in the Database constructor 2026-07-04 22:38:31 +00:00
test_conversions.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00
test_convert.py Raise ValueError instead of AssertionError for invalid arguments 2026-07-04 19:19:24 +00:00
test_create.py Raise ValueError instead of AssertionError for invalid arguments 2026-07-04 19:19:24 +00:00
test_create_view.py Raise ValueError instead of AssertionError for invalid arguments 2026-07-04 19:19:24 +00:00
test_default_value.py Handle db.table(table_name).insert({}), closes #759 2026-06-22 12:00:05 -07:00
test_delete.py Fix delete_where() leaving the connection in an open transaction 2026-07-04 17:57:35 +00:00
test_docs.py More type annotations (#697) 2025-12-16 22:11:47 -08:00
test_duplicate.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
test_enable_counts.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_extract.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
test_extracts.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_fts.py Remove View.enable_fts() 2026-07-04 20:44:04 +00:00
test_get.py Refactored tests into new test_rows.py, refs #76 2020-04-15 18:04:55 -07:00
test_gis.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_hypothesis.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00
test_insert_files.py insert-files multiple --pk support, closes #621 2024-03-16 17:33:31 -07:00
test_introspect.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
test_list_mode.py table.insert_all() and table.upsert_all() now take generators of lists/tuples 2025-11-23 12:17:23 -08:00
test_lookup.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_m2m.py Raise ValueError instead of AssertionError for invalid arguments 2026-07-04 19:19:24 +00:00
test_migrations.py Polish: clearer errors, corrected docstrings, setuptools pin 2026-07-04 19:13:15 +00:00
test_plugins.py fix: Plugins are still loaded when running tests (#719) 2026-06-21 16:14:45 -07:00
test_query.py Use the sqlite3/sqlean shim in test_query.py 2026-07-04 18:51:55 +00:00
test_recipes.py table.insert_all() and table.upsert_all() now take generators of lists/tuples 2025-11-23 12:17:23 -08:00
test_recreate.py Raise ValueError instead of AssertionError for invalid arguments 2026-07-04 19:19:24 +00:00
test_register_function.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_rows.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00
test_rows_from_file.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_sniff.py Detect CSV/TSV column types by default (#683) 2025-11-23 22:23:15 -08:00
test_suggest_column_types.py Fixed bug with null columns, closes #95 2020-03-23 13:31:06 -07:00
test_tracer.py Fix broken tracer test 2026-06-21 16:29:32 -07:00
test_transform.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
test_update.py Use double quotes not braces for tables and columns (#678) 2025-11-23 20:43:26 -08:00
test_upsert.py upsert() now requires a value for every primary key column 2026-07-04 18:43:37 +00:00
test_utils.py sqlite_utils.utils.flatten() function, closes #500 2022-10-18 11:00:35 -07:00
test_wal.py Raise TransactionError instead of RuntimeError from enable_wal/disable_wal 2026-07-04 22:32:36 +00:00