"""Test functionality of the Store class.""" from nancy import store import os from pathlib import Path import pytest import sys import tempfile from typing import Iterator @pytest.fixture def bare_dir() -> Iterator[Path]: """Create an empty temp directory""" with tempfile.TemporaryDirectory(prefix="nancy_testdir") as d: yield Path(d) @pytest.fixture def filled_dir(bare_dir: Path) -> Path: open(bare_dir / "a.txt", "w").write("foo") os.makedirs(bare_dir / "stats") open(bare_dir / "stats" / "metrics.csv", "w").write("bar,baz") # identical to ./a.txt open(bare_dir / "stats" / "a.txt", "w").write("foo") return bare_dir def test_record_untracked_dir(filled_dir: Path) -> None: from nancy.cli.record import record record(store_path=filled_dir, message="test_record_untracked_dir") @pytest.fixture def empty_store(bare_dir: Path) -> Iterator[store.Store]: s = store.Store.init(directory=bare_dir, message="test init") yield s def test_schema_version_match(empty_store: store.Store) -> None: from nancy.version import schema_version assert empty_store.conn is not None cur = empty_store.conn.cursor() (db_schema_ver,) = cur.execute("PRAGMA user_version;").fetchone() assert schema_version == db_schema_ver