Initial public ModelForge release
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from modelforge_api.persistence.models import (
|
||||
Base,
|
||||
Capability,
|
||||
CapabilityContract,
|
||||
Project,
|
||||
ProjectBinding,
|
||||
)
|
||||
from modelforge_api.services.manifest_registry import ManifestRegistry
|
||||
from modelforge_api.services.project_registry import sync_project_registry
|
||||
|
||||
|
||||
def test_project_registry_materializes_only_real_contracts_and_is_idempotent() -> None:
|
||||
engine = create_engine("sqlite+pysqlite:///:memory:")
|
||||
Base.metadata.create_all(engine)
|
||||
with Session(engine) as session:
|
||||
capability = Capability(key="rag.embedding", description="test")
|
||||
session.add(capability)
|
||||
session.flush()
|
||||
session.add(
|
||||
CapabilityContract(
|
||||
capability_id=capability.id,
|
||||
version=1,
|
||||
input_schema={},
|
||||
output_schema={},
|
||||
contract={},
|
||||
upgrade_class="requires_reindex",
|
||||
)
|
||||
)
|
||||
session.commit()
|
||||
|
||||
first = sync_project_registry(session, ManifestRegistry())
|
||||
second = sync_project_registry(session, ManifestRegistry())
|
||||
|
||||
assert first.projects_created == 3
|
||||
assert first.bindings_created == 1
|
||||
assert first.unavailable_contracts
|
||||
assert second.projects_created == 0
|
||||
assert second.bindings_created == 0
|
||||
assert session.query(Project).count() == 3
|
||||
assert session.query(ProjectBinding).count() == 1
|
||||
Reference in New Issue
Block a user