Add initial SQLmem package structure with SQL parser, cache manager, column registry, and tests
This commit is contained in:
@@ -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"}
|
||||
Reference in New Issue
Block a user