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

@ -16,7 +16,7 @@ from sqlite_utils.db import (
NoTable,
quote_identifier,
)
from sqlite_utils.plugins import pm, get_plugins
from sqlite_utils.plugins import ensure_plugins_loaded, pm, get_plugins
from sqlite_utils.utils import maximize_csv_field_size_limit
from sqlite_utils import recipes
import textwrap
@ -3412,6 +3412,7 @@ def plugins_list():
click.echo(json.dumps(get_plugins(), indent=2))
ensure_plugins_loaded()
pm.hook.register_commands(cli=cli)
cli.add_command(migrate)