mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Test for --metadata=x.yaml
This commit is contained in:
parent
616536e9dc
commit
18705a797a
2 changed files with 45 additions and 3 deletions
|
|
@ -327,6 +327,7 @@ def serve(
|
||||||
config,
|
config,
|
||||||
version_note,
|
version_note,
|
||||||
help_config,
|
help_config,
|
||||||
|
return_instance=False,
|
||||||
):
|
):
|
||||||
"""Serve up specified SQLite database files with a web UI"""
|
"""Serve up specified SQLite database files with a web UI"""
|
||||||
if help_config:
|
if help_config:
|
||||||
|
|
@ -375,6 +376,10 @@ def serve(
|
||||||
memory=memory,
|
memory=memory,
|
||||||
version_note=version_note,
|
version_note=version_note,
|
||||||
)
|
)
|
||||||
|
if return_instance:
|
||||||
|
# Private utility mechanism for writing unit tests
|
||||||
|
return ds
|
||||||
|
|
||||||
# Run async sanity checks - but only if we're not under pytest
|
# Run async sanity checks - but only if we're not under pytest
|
||||||
asyncio.get_event_loop().run_until_complete(check_databases(ds))
|
asyncio.get_event_loop().run_until_complete(check_databases(ds))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
from .fixtures import app_client, make_app_client
|
from .fixtures import app_client, make_app_client, TestClient as _TestClient
|
||||||
from datasette.cli import cli
|
from datasette.cli import cli, serve
|
||||||
from click.testing import CliRunner
|
from click.testing import CliRunner
|
||||||
import pathlib
|
import io
|
||||||
import json
|
import json
|
||||||
|
import pathlib
|
||||||
|
import textwrap
|
||||||
|
|
||||||
|
|
||||||
def test_inspect_cli(app_client):
|
def test_inspect_cli(app_client):
|
||||||
|
|
@ -46,3 +48,38 @@ def test_spatialite_error_if_attempt_to_open_spatialite():
|
||||||
)
|
)
|
||||||
assert result.exit_code != 0
|
assert result.exit_code != 0
|
||||||
assert "trying to load a SpatiaLite database" in result.output
|
assert "trying to load a SpatiaLite database" in result.output
|
||||||
|
|
||||||
|
|
||||||
|
def test_metadata_yaml():
|
||||||
|
yaml_file = io.StringIO(
|
||||||
|
textwrap.dedent(
|
||||||
|
"""
|
||||||
|
title: Hello from YAML
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
# Annoyingly we have to provide all default arguments here:
|
||||||
|
ds = serve.callback(
|
||||||
|
[],
|
||||||
|
metadata=yaml_file,
|
||||||
|
immutable=[],
|
||||||
|
host="127.0.0.1",
|
||||||
|
port=8001,
|
||||||
|
debug=False,
|
||||||
|
reload=False,
|
||||||
|
cors=False,
|
||||||
|
sqlite_extensions=[],
|
||||||
|
inspect_file=None,
|
||||||
|
template_dir=None,
|
||||||
|
plugins_dir=None,
|
||||||
|
static=[],
|
||||||
|
memory=False,
|
||||||
|
config=[],
|
||||||
|
version_note=None,
|
||||||
|
help_config=False,
|
||||||
|
return_instance=True,
|
||||||
|
)
|
||||||
|
client = _TestClient(ds.app())
|
||||||
|
client.ds = ds
|
||||||
|
response = client.get("/-/metadata.json")
|
||||||
|
assert {"title": "Hello from YAML"} == response.json
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue