kopia lustrzana https://github.com/simonw/datasette
Tests for db.table_columns() and db.table_column_details()
rodzic
14982bd900
commit
e02f6c1300
|
@ -2,7 +2,7 @@
|
|||
Tests for the datasette.database.Database class
|
||||
"""
|
||||
from datasette.database import Database, Results, MultipleValues
|
||||
from datasette.utils import sqlite3
|
||||
from datasette.utils import sqlite3, Column
|
||||
from .fixtures import app_client
|
||||
import pytest
|
||||
import time
|
||||
|
@ -69,6 +69,201 @@ async def test_table_exists(db, tables, exists):
|
|||
assert exists == actual
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"table,expected",
|
||||
(
|
||||
(
|
||||
"facetable",
|
||||
[
|
||||
"pk",
|
||||
"created",
|
||||
"planet_int",
|
||||
"on_earth",
|
||||
"state",
|
||||
"city_id",
|
||||
"neighborhood",
|
||||
"tags",
|
||||
"complex_array",
|
||||
"distinct_some_null",
|
||||
],
|
||||
),
|
||||
(
|
||||
"sortable",
|
||||
[
|
||||
"pk1",
|
||||
"pk2",
|
||||
"content",
|
||||
"sortable",
|
||||
"sortable_with_nulls",
|
||||
"sortable_with_nulls_2",
|
||||
"text",
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
@pytest.mark.asyncio
|
||||
async def test_table_columns(db, table, expected):
|
||||
columns = await db.table_columns(table)
|
||||
assert columns == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"table,expected",
|
||||
(
|
||||
(
|
||||
"facetable",
|
||||
[
|
||||
Column(
|
||||
cid=0,
|
||||
name="pk",
|
||||
type="integer",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=1,
|
||||
),
|
||||
Column(
|
||||
cid=1,
|
||||
name="created",
|
||||
type="text",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=2,
|
||||
name="planet_int",
|
||||
type="integer",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=3,
|
||||
name="on_earth",
|
||||
type="integer",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=4,
|
||||
name="state",
|
||||
type="text",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=5,
|
||||
name="city_id",
|
||||
type="integer",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=6,
|
||||
name="neighborhood",
|
||||
type="text",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=7,
|
||||
name="tags",
|
||||
type="text",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=8,
|
||||
name="complex_array",
|
||||
type="text",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=9,
|
||||
name="distinct_some_null",
|
||||
type="",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
],
|
||||
),
|
||||
(
|
||||
"sortable",
|
||||
[
|
||||
Column(
|
||||
cid=0,
|
||||
name="pk1",
|
||||
type="varchar(30)",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=1,
|
||||
),
|
||||
Column(
|
||||
cid=1,
|
||||
name="pk2",
|
||||
type="varchar(30)",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=2,
|
||||
),
|
||||
Column(
|
||||
cid=2,
|
||||
name="content",
|
||||
type="text",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=3,
|
||||
name="sortable",
|
||||
type="integer",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=4,
|
||||
name="sortable_with_nulls",
|
||||
type="real",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=5,
|
||||
name="sortable_with_nulls_2",
|
||||
type="real",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
Column(
|
||||
cid=6,
|
||||
name="text",
|
||||
type="text",
|
||||
notnull=0,
|
||||
default_value=None,
|
||||
is_pk=0,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
@pytest.mark.asyncio
|
||||
async def test_table_column_details(db, table, expected):
|
||||
columns = await db.table_column_details(table)
|
||||
assert columns == expected
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_all_foreign_keys(db):
|
||||
all_foreign_keys = await db.get_all_foreign_keys()
|
||||
|
|
Ładowanie…
Reference in New Issue