mirror of
https://github.com/simonw/datasette.git
synced 2026-09-16 21:44:07 +02:00
Add add-database and remove-database lifecycle events
Fire plugin-visible events from Datasette.add_database() and .remove_database() so plugins can react to databases being attached or detached at runtime. Dispatch is best-effort fire-and-forget: events only fire when startup has completed and an event loop is running, and remove-database fires after close() so queued writes are flushed before listeners run. Motivating consumer is datasette-litestream, which needs to register newly attached databases with its replication daemon. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
e889403d3b
commit
c6bbcc3298
6 changed files with 205 additions and 2 deletions
|
|
@ -1661,6 +1661,9 @@ async def test_hook_register_events():
|
|||
datasette = Datasette(memory=True)
|
||||
await datasette.invoke_startup()
|
||||
assert any(k.__name__ == "OneEvent" for k in datasette.event_classes)
|
||||
# Core database lifecycle events should be registered too
|
||||
registered_names = {k.name for k in datasette.event_classes}
|
||||
assert {"add-database", "remove-database"} <= registered_names
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue