Switch from pkg_resources to importlib.metadata in app.py, refs #2057

pull/2185/head
Simon Willison 2023-09-16 09:35:18 -07:00
rodzic 16f0b6d822
commit 852f501485
2 zmienionych plików z 25 dodań i 3 usunięć

Wyświetl plik

@ -8,11 +8,11 @@ import functools
import glob
import hashlib
import httpx
import importlib.metadata
import inspect
from itsdangerous import BadSignature
import json
import os
import pkg_resources
import re
import secrets
import sys
@ -1118,9 +1118,9 @@ class Datasette:
if using_pysqlite3:
for package in ("pysqlite3", "pysqlite3-binary"):
try:
info["pysqlite3"] = pkg_resources.get_distribution(package).version
info["pysqlite3"] = importlib.metadata.version(package)
break
except pkg_resources.DistributionNotFound:
except importlib.metadata.PackageNotFoundError:
pass
return info

Wyświetl plik

@ -1264,3 +1264,25 @@ async def test_hook_actors_from_ids():
}
finally:
pm.unregister(name="ReturnNothingPlugin")
@pytest.mark.asyncio
async def test_plugin_is_installed():
datasette = Datasette(memory=True)
class DummyPlugin:
__name__ = "DummyPlugin"
@hookimpl
def actors_from_ids(self, datasette, actor_ids):
return {}
try:
pm.register(DummyPlugin(), name="DummyPlugin")
response = await datasette.client.get("/-/plugins.json")
assert response.status_code == 200
installed_plugins = {p["name"] for p in response.json()}
assert "DummyPlugin" in installed_plugins
finally:
pm.unregister(name="DummyPlugin")