Fixed /-/plugins?all=1, refs #802

This commit is contained in:
Simon Willison 2020-06-05 16:55:08 -07:00
commit 75c143a84c
3 changed files with 14 additions and 11 deletions

View file

@ -628,7 +628,12 @@ class Datasette:
def _plugins(self, request=None, all=False):
ps = list(get_plugins())
if all is False or (request is not None and request.args.get("all")):
should_show_all = False
if request is not None:
should_show_all = request.args.get("all")
else:
should_show_all = all
if not should_show_all:
ps = [p for p in ps if p["name"] not in DEFAULT_PLUGINS]
return [
{

View file

@ -1,3 +1,4 @@
from datasette.plugins import DEFAULT_PLUGINS
from datasette.utils import detect_json1
from .fixtures import ( # noqa
app_client,
@ -1261,6 +1262,11 @@ def test_threads_json(app_client):
def test_plugins_json(app_client):
response = app_client.get("/-/plugins.json")
assert EXPECTED_PLUGINS == sorted(response.json, key=lambda p: p["name"])
# Try with ?all=1
response = app_client.get("/-/plugins.json?all=1")
names = {p["name"] for p in response.json}
assert names.issuperset(p["name"] for p in EXPECTED_PLUGINS)
assert names.issuperset(DEFAULT_PLUGINS)
def test_versions_json(app_client):

View file

@ -4,6 +4,7 @@ from .fixtures import (
TestClient as _TestClient,
EXPECTED_PLUGINS,
)
from datasette.plugins import DEFAULT_PLUGINS
from datasette.cli import cli, serve
from click.testing import CliRunner
import io
@ -67,16 +68,7 @@ def test_plugins_cli(app_client):
# Should have all the EXPECTED_PLUGINS
assert set(names).issuperset(set(p["name"] for p in EXPECTED_PLUGINS))
# And the following too:
assert set(names).issuperset(
[
"datasette.sql_functions",
"datasette.actor_auth_cookie",
"datasette.facets",
"datasette.publish.cloudrun",
"datasette.default_permissions",
"datasette.publish.heroku",
]
)
assert set(names).issuperset(DEFAULT_PLUGINS)
def test_metadata_yaml():