46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
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"}
|