Add initial SQLmem package structure with SQL parser, cache manager, column registry, and tests

This commit is contained in:
Jan Doubravský
2026-06-01 16:44:25 +02:00
parent 54879ef9d0
commit 74772cee4a
18 changed files with 835 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
import sqlite3
import pytest
from sqlmem.registry import ColumnRegistry
@pytest.fixture
def registry():
conn = sqlite3.connect(":memory:")
return ColumnRegistry(conn)
def test_empty_registry(registry):
assert registry.get_columns("users") == set()
def test_update_and_get(registry):
registry.update("users", ["name", "email"])
assert registry.get_columns("users") == {"name", "email"}
def test_update_accumulates(registry):
registry.update("users", ["name", "email"])
registry.update("users", ["email", "status"])
assert registry.get_columns("users") == {"name", "email", "status"}
def test_needs_refetch_missing(registry):
registry.update("users", ["name"])
missing = registry.needs_refetch("users", ["name", "email"])
assert missing == ["email"]
def test_needs_refetch_none_missing(registry):
registry.update("users", ["name", "email"])
missing = registry.needs_refetch("users", ["name"])
assert missing == []
def test_independent_tables(registry):
registry.update("users", ["name"])
registry.update("orders", ["total"])
assert registry.get_columns("users") == {"name"}
assert registry.get_columns("orders") == {"total"}