kopia lustrzana https://github.com/simonw/datasette
Applied latest Black
rodzic
c0d58a71b9
commit
4b01cec374
|
@ -136,6 +136,7 @@ def sqlite_extensions(fn):
|
||||||
multiple=True,
|
multiple=True,
|
||||||
help="Path to a SQLite extension to load, and optional entrypoint",
|
help="Path to a SQLite extension to load, and optional entrypoint",
|
||||||
)(fn)
|
)(fn)
|
||||||
|
|
||||||
# Wrap it in a custom error handler
|
# Wrap it in a custom error handler
|
||||||
@functools.wraps(fn)
|
@functools.wraps(fn)
|
||||||
def wrapped(*args, **kwargs):
|
def wrapped(*args, **kwargs):
|
||||||
|
|
|
@ -83,13 +83,11 @@ async def test_through_filters_from_request(app_client):
|
||||||
request = Request.fake(
|
request = Request.fake(
|
||||||
'/?_through={"table":"roadside_attraction_characteristics","column":"characteristic_id","value":"1"}'
|
'/?_through={"table":"roadside_attraction_characteristics","column":"characteristic_id","value":"1"}'
|
||||||
)
|
)
|
||||||
filter_args = await (
|
filter_args = await through_filters(
|
||||||
through_filters(
|
request=request,
|
||||||
request=request,
|
datasette=app_client.ds,
|
||||||
datasette=app_client.ds,
|
table="roadside_attractions",
|
||||||
table="roadside_attractions",
|
database="fixtures",
|
||||||
database="fixtures",
|
|
||||||
)
|
|
||||||
)()
|
)()
|
||||||
assert filter_args.where_clauses == [
|
assert filter_args.where_clauses == [
|
||||||
"pk in (select attraction_id from roadside_attraction_characteristics where characteristic_id = :p0)"
|
"pk in (select attraction_id from roadside_attraction_characteristics where characteristic_id = :p0)"
|
||||||
|
@ -106,13 +104,11 @@ async def test_through_filters_from_request(app_client):
|
||||||
request = Request.fake(
|
request = Request.fake(
|
||||||
'/?_through={"table":"roadside_attraction_characteristics","column":"characteristic_id","value":"1"}'
|
'/?_through={"table":"roadside_attraction_characteristics","column":"characteristic_id","value":"1"}'
|
||||||
)
|
)
|
||||||
filter_args = await (
|
filter_args = await through_filters(
|
||||||
through_filters(
|
request=request,
|
||||||
request=request,
|
datasette=app_client.ds,
|
||||||
datasette=app_client.ds,
|
table="roadside_attractions",
|
||||||
table="roadside_attractions",
|
database="fixtures",
|
||||||
database="fixtures",
|
|
||||||
)
|
|
||||||
)()
|
)()
|
||||||
assert filter_args.where_clauses == [
|
assert filter_args.where_clauses == [
|
||||||
"pk in (select attraction_id from roadside_attraction_characteristics where characteristic_id = :p0)"
|
"pk in (select attraction_id from roadside_attraction_characteristics where characteristic_id = :p0)"
|
||||||
|
@ -127,12 +123,10 @@ async def test_through_filters_from_request(app_client):
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_where_filters_from_request(app_client):
|
async def test_where_filters_from_request(app_client):
|
||||||
request = Request.fake("/?_where=pk+>+3")
|
request = Request.fake("/?_where=pk+>+3")
|
||||||
filter_args = await (
|
filter_args = await where_filters(
|
||||||
where_filters(
|
request=request,
|
||||||
request=request,
|
datasette=app_client.ds,
|
||||||
datasette=app_client.ds,
|
database="fixtures",
|
||||||
database="fixtures",
|
|
||||||
)
|
|
||||||
)()
|
)()
|
||||||
assert filter_args.where_clauses == ["pk > 3"]
|
assert filter_args.where_clauses == ["pk > 3"]
|
||||||
assert filter_args.params == {}
|
assert filter_args.params == {}
|
||||||
|
@ -145,13 +139,11 @@ async def test_where_filters_from_request(app_client):
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
async def test_search_filters_from_request(app_client):
|
async def test_search_filters_from_request(app_client):
|
||||||
request = Request.fake("/?_search=bobcat")
|
request = Request.fake("/?_search=bobcat")
|
||||||
filter_args = await (
|
filter_args = await search_filters(
|
||||||
search_filters(
|
request=request,
|
||||||
request=request,
|
datasette=app_client.ds,
|
||||||
datasette=app_client.ds,
|
database="fixtures",
|
||||||
database="fixtures",
|
table="searchable",
|
||||||
table="searchable",
|
|
||||||
)
|
|
||||||
)()
|
)()
|
||||||
assert filter_args.where_clauses == [
|
assert filter_args.where_clauses == [
|
||||||
"rowid in (select rowid from searchable_fts where searchable_fts match escape_fts(:search))"
|
"rowid in (select rowid from searchable_fts where searchable_fts match escape_fts(:search))"
|
||||||
|
|
|
@ -8,6 +8,7 @@ from pathlib import Path
|
||||||
# this resolves to "./ext", which is enough for SQLite to calculate the rest
|
# this resolves to "./ext", which is enough for SQLite to calculate the rest
|
||||||
COMPILED_EXTENSION_PATH = str(Path(__file__).parent / "ext")
|
COMPILED_EXTENSION_PATH = str(Path(__file__).parent / "ext")
|
||||||
|
|
||||||
|
|
||||||
# See if ext.c has been compiled, based off the different possible suffixes.
|
# See if ext.c has been compiled, based off the different possible suffixes.
|
||||||
def has_compiled_ext():
|
def has_compiled_ext():
|
||||||
for ext in ["dylib", "so", "dll"]:
|
for ext in ["dylib", "so", "dll"]:
|
||||||
|
@ -20,7 +21,6 @@ def has_compiled_ext():
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@pytest.mark.skipif(not has_compiled_ext(), reason="Requires compiled ext.c")
|
@pytest.mark.skipif(not has_compiled_ext(), reason="Requires compiled ext.c")
|
||||||
async def test_load_extension_default_entrypoint():
|
async def test_load_extension_default_entrypoint():
|
||||||
|
|
||||||
# The default entrypoint only loads a() and NOT b() or c(), so those
|
# The default entrypoint only loads a() and NOT b() or c(), so those
|
||||||
# should fail.
|
# should fail.
|
||||||
ds = Datasette(sqlite_extensions=[COMPILED_EXTENSION_PATH])
|
ds = Datasette(sqlite_extensions=[COMPILED_EXTENSION_PATH])
|
||||||
|
@ -41,7 +41,6 @@ async def test_load_extension_default_entrypoint():
|
||||||
@pytest.mark.asyncio
|
@pytest.mark.asyncio
|
||||||
@pytest.mark.skipif(not has_compiled_ext(), reason="Requires compiled ext.c")
|
@pytest.mark.skipif(not has_compiled_ext(), reason="Requires compiled ext.c")
|
||||||
async def test_load_extension_multiple_entrypoints():
|
async def test_load_extension_multiple_entrypoints():
|
||||||
|
|
||||||
# Load in the default entrypoint and the other 2 custom entrypoints, now
|
# Load in the default entrypoint and the other 2 custom entrypoints, now
|
||||||
# all a(), b(), and c() should run successfully.
|
# all a(), b(), and c() should run successfully.
|
||||||
ds = Datasette(
|
ds = Datasette(
|
||||||
|
|
Ładowanie…
Reference in New Issue