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"}