--load-extension option for sqlite-utils query, closes #134

This commit is contained in:
Simon Willison 2020-08-21 13:54:11 -07:00
commit 7e9aad7e1c
3 changed files with 50 additions and 2 deletions

View file

@ -4,7 +4,7 @@ from click.testing import CliRunner
import json
import os
import pytest
from sqlite_utils.utils import sqlite3
from sqlite_utils.utils import sqlite3, find_spatialite
from .utils import collapse_whitespace
@ -885,6 +885,29 @@ def test_query_raw(db_path, content, is_binary):
assert result.output == str(content)
@pytest.mark.skipif(not find_spatialite(), reason="Could not find SpatiaLite extension")
@pytest.mark.skipif(
not hasattr(sqlite3.Connection, "enable_load_extension"),
reason="sqlite3.Connection missing enable_load_extension",
)
def test_query_load_extension():
# Without --load-extension:
result = CliRunner().invoke(cli.cli, [":memory:", "select spatialite_version()"])
assert result.exit_code == 1
assert "no such function: spatialite_version" in repr(result)
# With --load-extension:
result = CliRunner().invoke(
cli.cli,
[
":memory:",
"select spatialite_version()",
"--load-extension={}".format(find_spatialite()),
],
)
assert result.exit_code == 0, result.stdout
assert ["spatialite_version()"] == list(json.loads(result.output)[0].keys())
def test_query_memory_does_not_create_file(tmpdir):
owd = os.getcwd()
try: