fix: Plugins are still loaded when running tests (#719)

* fix: defer plugin entrypoint loading until runtime

Fixes simonw/sqlite-utils#713

* Lazy-load plugins when listing them

Keep plugin entrypoints from loading at module import time, but preserve the existing behavior of get_plugins() by loading entrypoints the first time plugins are listed outside tests.

---------

Co-authored-by: Simon Willison <swillison@gmail.com>
This commit is contained in:
Rami Abdelrazzaq 2026-06-21 18:14:45 -05:00 committed by GitHub
commit f448b61f5e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 43 additions and 4 deletions

View file

@ -41,7 +41,7 @@ from typing import (
Tuple,
)
import uuid
from sqlite_utils.plugins import pm
from sqlite_utils.plugins import ensure_plugins_loaded, pm
try:
iterdump = importlib.import_module("sqlite_dump").iterdump
@ -401,6 +401,7 @@ class Database:
self._registered_functions: set = set()
self.use_counts_table = use_counts_table
if execute_plugins:
ensure_plugins_loaded()
pm.hook.prepare_connection(conn=self.conn)
self.strict = strict