sqlite-utils/tests
ATOM00blue 9667b2d0c5 Fix KeyError in insert_all when pk column is missing from a single record
When a pk= column was named that isn't present in the data (and so isn't
created on the table), inserting exactly one record raised a KeyError while
inserting any other number of records did not. The single-record branch that
populates last_pk read the column straight out of the inserted row.

Check that the named pk column(s) actually exist on the row first and fall
back to the rowid otherwise, matching the behaviour for multiple records.

Closes #732
2026-05-22 06:44:09 +05:30
..
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_attach.py db.attach(alias, filepath) method, closes #113 2021-02-18 20:56:32 -08:00
test_cli.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07: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 Detect CSV/TSV column types by default (#683) 2025-11-23 22:23:15 -08:00
test_cli_memory.py Type fixes now enforced by ty 2025-12-16 19:34:45 -08:00
test_column_affinity.py Tracer mechanism for showing underlying SQL queries 2020-09-07 14:56:59 -07:00
test_constructor.py db.close() method, closes #504 2022-10-25 13:57:43 -07:00
test_conversions.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00
test_convert.py Removed convert skip_false and --skip-false, closes #542 2025-11-23 15:40:28 -08:00
test_create.py Fix KeyError in insert_all when pk column is missing from a single record 2026-05-22 06:44:09 +05:30
test_create_view.py Tracer mechanism for showing underlying SQL queries 2020-09-07 14:56:59 -07:00
test_default_value.py Test against Python 3.15-dev, bump ty and Black (#738) 2026-05-17 16:52:48 -07:00
test_delete.py Swapped the order of a bunch of pytest comparisons 2023-08-17 18:05:13 -07: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 Type fixes now enforced by ty 2025-12-16 19:34:45 -08: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 Swapped the order of a bunch of pytest comparisons 2023-08-17 18:05:13 -07:00
test_plugins.py Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08:00
test_query.py Tests for db.query() method, refs #290 2021-06-22 10:43:49 -07: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 Database as a context manager, fixed many pytest warnings 2025-12-11 16:56:12 -08: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 More type annotations (#697) 2025-12-16 22:11:47 -08: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 Use ON CONFLICT for upsert, refs #652 2025-05-08 20:37:49 -07:00
test_utils.py sqlite_utils.utils.flatten() function, closes #500 2022-10-18 11:00:35 -07:00
test_wal.py Now complies with flake8, refs #291 2021-06-22 18:22:08 -07:00