From 9cb5700d605b8c72930c8bce8b3eaa8a0763cca6 Mon Sep 17 00:00:00 2001 From: Seb Bacon Date: Thu, 15 Aug 2024 21:20:26 +0100 Subject: [PATCH] bugfix: correctly detect json1 in versions.json (#2327) Fixes #2326 --- datasette/app.py | 4 ++-- tests/test_api.py | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/datasette/app.py b/datasette/app.py index fa5e90e3..c2e685ee 100644 --- a/datasette/app.py +++ b/datasette/app.py @@ -69,6 +69,7 @@ from .utils import ( async_call_with_supported_arguments, await_me_maybe, call_with_supported_arguments, + detect_json1, display_actor, escape_css_string, escape_sqlite, @@ -1172,9 +1173,8 @@ class Datasette: conn = sqlite3.connect(":memory:") self._prepare_connection(conn, "_memory") sqlite_version = conn.execute("select sqlite_version()").fetchone()[0] - sqlite_extensions = {} + sqlite_extensions = {"json1": detect_json1(conn)} for extension, testsql, hasversion in ( - ("json1", "SELECT json('{}')", False), ("spatialite", "SELECT spatialite_version()", True), ): try: diff --git a/tests/test_api.py b/tests/test_api.py index 01c9bb79..fbbe3f67 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -835,6 +835,10 @@ async def test_versions_json(ds_client): assert "version" in data["sqlite"] assert "fts_versions" in data["sqlite"] assert "compile_options" in data["sqlite"] + # By default, the json1 extension is enabled in the SQLite + # provided by the `ubuntu-latest` github actions runner, and + # all versions of SQLite from 3.38.0 onwards + assert data["sqlite"]["extensions"]["json1"] @pytest.mark.asyncio