mirror of
https://github.com/simonw/datasette.git
synced 2025-12-10 16:51:24 +01:00
Implemented inspect-data for config dirs, refs #731
This commit is contained in:
parent
79c9cf4fec
commit
0d8fa53fab
2 changed files with 16 additions and 9 deletions
|
|
@ -169,18 +169,27 @@ class Datasette:
|
|||
assert config_dir is None or isinstance(
|
||||
config_dir, Path
|
||||
), "config_dir= should be a pathlib.Path"
|
||||
# TODO: Use 'inspect-data.json' to decide on immutables
|
||||
immutables = immutables or []
|
||||
self.files = tuple(files) + tuple(immutables)
|
||||
self.files = tuple(files) + tuple(immutables or [])
|
||||
if config_dir:
|
||||
self.files += tuple([str(p) for p in config_dir.glob("*.db")])
|
||||
self.immutables = set(immutables)
|
||||
if (
|
||||
config_dir
|
||||
and (config_dir / "inspect-data.json").exists()
|
||||
and not inspect_data
|
||||
):
|
||||
inspect_data = json.load((config_dir / "inspect-data.json").open())
|
||||
if immutables is None:
|
||||
immutable_filenames = [i["file"] for i in inspect_data.values()]
|
||||
immutables = [
|
||||
f for f in self.files if Path(f).name in immutable_filenames
|
||||
]
|
||||
self.inspect_data = inspect_data
|
||||
self.immutables = set(immutables or [])
|
||||
if not self.files:
|
||||
self.files = [MEMORY]
|
||||
elif memory:
|
||||
self.files = (MEMORY,) + self.files
|
||||
self.databases = collections.OrderedDict()
|
||||
self.inspect_data = inspect_data
|
||||
for file in self.files:
|
||||
path = file
|
||||
is_memory = False
|
||||
|
|
|
|||
|
|
@ -98,9 +98,7 @@ def test_config(config_dir_client):
|
|||
def test_plugins(config_dir_client):
|
||||
response = config_dir_client.get("/-/plugins.json")
|
||||
assert 200 == response.status
|
||||
assert [
|
||||
{"name": "hooray.py", "static": False, "templates": False, "version": None}
|
||||
] == json.loads(response.text)
|
||||
assert "hooray.py" in {p["name"] for p in json.loads(response.text)}
|
||||
|
||||
|
||||
def test_templates_and_plugin(config_dir_client):
|
||||
|
|
@ -125,4 +123,4 @@ def test_databases(config_dir_client):
|
|||
assert "demo" == databases[0]["name"]
|
||||
assert databases[0]["is_mutable"]
|
||||
assert "immutable" == databases[1]["name"]
|
||||
# assert not databases[1]["is_mutable"]
|
||||
assert not databases[1]["is_mutable"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue