kopia lustrzana https://github.com/simonw/datasette
86 wiersze
2.3 KiB
Python
86 wiersze
2.3 KiB
Python
import pytest
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_internal_only_available_to_root(ds_client):
|
|
cookie = ds_client.actor_cookie({"id": "root"})
|
|
assert (await ds_client.get("/_internal")).status_code == 403
|
|
assert (
|
|
await ds_client.get("/_internal", cookies={"ds_actor": cookie})
|
|
).status_code == 200
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_internal_databases(ds_client):
|
|
cookie = ds_client.actor_cookie({"id": "root"})
|
|
databases = (
|
|
await ds_client.get(
|
|
"/_internal/databases.json?_shape=array", cookies={"ds_actor": cookie}
|
|
)
|
|
).json()
|
|
assert len(databases) == 2
|
|
internal, fixtures = databases
|
|
assert internal["database_name"] == "_internal"
|
|
assert internal["is_memory"] == 1
|
|
assert internal["path"] is None
|
|
assert isinstance(internal["schema_version"], int)
|
|
assert fixtures["database_name"] == "fixtures"
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_internal_tables(ds_client):
|
|
cookie = ds_client.actor_cookie({"id": "root"})
|
|
tables = (
|
|
await ds_client.get(
|
|
"/_internal/tables.json?_shape=array", cookies={"ds_actor": cookie}
|
|
)
|
|
).json()
|
|
assert len(tables) > 5
|
|
table = tables[0]
|
|
assert set(table.keys()) == {"rootpage", "table_name", "database_name", "sql"}
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_internal_indexes(ds_client):
|
|
cookie = ds_client.actor_cookie({"id": "root"})
|
|
indexes = (
|
|
await ds_client.get(
|
|
"/_internal/indexes.json?_shape=array", cookies={"ds_actor": cookie}
|
|
)
|
|
).json()
|
|
assert len(indexes) > 5
|
|
index = indexes[0]
|
|
assert set(index.keys()) == {
|
|
"partial",
|
|
"name",
|
|
"table_name",
|
|
"unique",
|
|
"seq",
|
|
"database_name",
|
|
"origin",
|
|
}
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_internal_foreign_keys(ds_client):
|
|
cookie = ds_client.actor_cookie({"id": "root"})
|
|
foreign_keys = (
|
|
await ds_client.get(
|
|
"/_internal/foreign_keys.json?_shape=array", cookies={"ds_actor": cookie}
|
|
)
|
|
).json()
|
|
assert len(foreign_keys) > 5
|
|
foreign_key = foreign_keys[0]
|
|
assert set(foreign_key.keys()) == {
|
|
"table",
|
|
"seq",
|
|
"on_update",
|
|
"on_delete",
|
|
"to",
|
|
"id",
|
|
"match",
|
|
"database_name",
|
|
"table_name",
|
|
"from",
|
|
}
|