diff options
| author | Egor Tensin <egor@tensin.name> | 2023-12-28 01:00:45 +0100 |
|---|---|---|
| committer | Egor Tensin <egor@tensin.name> | 2023-12-28 01:00:45 +0100 |
| commit | a9ae33c4b9dbe566d2ada07affb8b5a135f9b6eb (patch) | |
| tree | 72b47c96da722d5e034af789f4af432e3fdfa051 /test/src/lib/db.py | |
| parent | json: factor out json_object_put into json_free (diff) | |
| download | cimple-a9ae33c4b9dbe566d2ada07affb8b5a135f9b6eb.tar.gz cimple-a9ae33c4b9dbe566d2ada07affb8b5a135f9b6eb.zip | |
test/py/ -> test/src/
Diffstat (limited to 'test/src/lib/db.py')
| -rw-r--r-- | test/src/lib/db.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/src/lib/db.py b/test/src/lib/db.py new file mode 100644 index 0000000..de6960a --- /dev/null +++ b/test/src/lib/db.py @@ -0,0 +1,30 @@ +# Copyright (c) 2023 Egor Tensin <egor@tensin.name> +# This file is part of the "cimple" project. +# For details, see https://github.com/egor-tensin/cimple. +# Distributed under the MIT License. + +from contextlib import closing, contextmanager +import logging +import sqlite3 + + +class Database: + def __init__(self, path): + logging.info('Opening SQLite database: %s', path) + self.conn = sqlite3.connect(f'file:{path}?mode=ro', uri=True) + + def __enter__(self): + return self + + def __exit__(*args): + self.conn.close() + + @contextmanager + def get_cursor(self): + with closing(self.conn.cursor()) as cur: + yield cur + + def get_all_runs(self): + with self.get_cursor() as cur: + cur.execute('SELECT * FROM cimple_runs_view') + return cur.fetchall() |
