Database() constructor works with pathlib.Path

This commit is contained in:
Simon Willison 2019-01-27 15:53:41 -08:00
commit 57fc8ce55e
2 changed files with 12 additions and 1 deletions

View file

@ -2,6 +2,7 @@ import sqlite3
from collections import namedtuple
import datetime
import json
import pathlib
Column = namedtuple(
"Column", ("cid", "name", "type", "notnull", "default_value", "is_pk")
@ -16,6 +17,8 @@ class Database:
def __init__(self, filename_or_conn):
if isinstance(filename_or_conn, str):
self.conn = sqlite3.connect(filename_or_conn)
elif isinstance(filename_or_conn, pathlib.Path):
self.conn = sqlite3.connect(str(filename_or_conn))
else:
self.conn = filename_or_conn

View file

@ -1,6 +1,7 @@
from sqlite_utils.db import Index
from sqlite_utils.db import Index, Database
import collections
import datetime
import pathlib
import pytest
import json
@ -181,3 +182,10 @@ def test_create_view(fresh_db):
def test_vacuum(fresh_db):
fresh_db["data"].insert({"foo": "foo", "bar": "bar"})
fresh_db.vacuum()
def test_works_with_pathlib_path(tmpdir):
path = pathlib.Path(tmpdir / "test.db")
db = Database(path)
db["demo"].insert_all([{"foo": 1}])
assert 1 == db["demo"].count