Ensure db.path is a string before trying to insert into internal database (#1370)

Thanks, @eyeseast
pull/1368/head
Chris Amico 2021-06-21 11:57:38 -04:00 zatwierdzone przez GitHub
rodzic 5335f360f4
commit a6c55afe8c
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 15 dodań i 1 usunięć

Wyświetl plik

@ -354,7 +354,7 @@ class Datasette:
INSERT OR REPLACE INTO databases (database_name, path, is_memory, schema_version)
VALUES (?, ?, ?, ?)
""",
[database_name, db.path, db.is_memory, schema_version],
[database_name, str(db.path), db.is_memory, schema_version],
block=True,
)
await populate_schema_tables(internal_db, db)

Wyświetl plik

@ -25,6 +25,7 @@ from .fixtures import ( # noqa
METADATA,
)
import json
import pathlib
import pytest
import sys
import urllib
@ -2123,3 +2124,16 @@ def test_col_nocol_errors(app_client, path, expected_error):
response = app_client.get(path)
assert response.status == 400
assert response.json["error"] == expected_error
@pytest.mark.asyncio
async def test_db_path(app_client):
db = app_client.ds.get_database()
path = pathlib.Path(db.path)
assert path.exists()
datasette = Datasette([path])
# this will break with a path
await datasette.refresh_schemas()