datasette/tests/test_spatialite.py
Simon Willison b2b901e8c4 Skip SpatiaLite test if no conn.enable_load_extension()
Ran into this problem while working on #1802
2022-09-05 17:09:57 -07:00

23 lines
803 B
Python

from datasette.app import Datasette
from datasette.utils import find_spatialite, SpatialiteNotFound, SPATIALITE_FUNCTIONS
from .utils import has_load_extension
import pytest
def has_spatialite():
try:
find_spatialite()
return True
except SpatialiteNotFound:
return False
@pytest.mark.asyncio
@pytest.mark.skipif(not has_spatialite(), reason="Requires SpatiaLite")
@pytest.mark.skipif(not has_load_extension(), reason="Requires enable_load_extension")
async def test_spatialite_version_info():
ds = Datasette(sqlite_extensions=["spatialite"])
response = await ds.client.get("/-/versions.json")
assert response.status_code == 200
spatialite = response.json()["sqlite"]["extensions"]["spatialite"]
assert set(SPATIALITE_FUNCTIONS) == set(spatialite)