File: test_internal_db.py

package info (click to toggle)
datasette 0.65.2-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 4,260 kB
  • sloc: python: 28,661; javascript: 10,089; sh: 71; makefile: 47; ansic: 26
file content (67 lines) | stat: -rw-r--r-- 1,953 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from .fixtures import app_client
import pytest


def test_internal_only_available_to_root(app_client):
    cookie = app_client.actor_cookie({"id": "root"})
    assert app_client.get("/_internal").status == 403
    assert app_client.get("/_internal", cookies={"ds_actor": cookie}).status == 200


def test_internal_databases(app_client):
    cookie = app_client.actor_cookie({"id": "root"})
    databases = app_client.get(
        "/_internal/databases.json?_shape=array", cookies={"ds_actor": cookie}
    ).json
    assert len(databases) == 2
    assert databases[0]["database_name"] == "_internal"
    assert databases[1]["database_name"] == "fixtures"


def test_internal_tables(app_client):
    cookie = app_client.actor_cookie({"id": "root"})
    tables = app_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"}


def test_internal_indexes(app_client):
    cookie = app_client.actor_cookie({"id": "root"})
    indexes = app_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",
    }


def test_internal_foreign_keys(app_client):
    cookie = app_client.actor_cookie({"id": "root"})
    foreign_keys = app_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",
    }