Files

43 lines
1.6 KiB
Python
Raw Permalink Normal View History

from sqlmodel import Session, SQLModel, create_engine, select
from app.agents.default_composer import resolve_composer_agent
from app.agents.snapshot import freeze_stage_snapshot
from app.models import Agent
def test_composer_is_available_without_a_resource_or_canvas():
engine = create_engine("sqlite://")
SQLModel.metadata.create_all(engine)
with Session(engine) as session:
composer = resolve_composer_agent(session)
assert composer.id == 0
assert composer.role == "composer"
assert composer.rules
assert session.exec(select(Agent)).all() == []
assert freeze_stage_snapshot(session)["composer"]["role"] == "composer"
def test_composer_does_not_use_another_users_private_agent():
engine = create_engine("sqlite://")
SQLModel.metadata.create_all(engine)
with Session(engine) as session:
session.add(Agent(name="私人组合", role="composer", owner_user_id=12,
visibility="private", rules="private rules"))
session.commit()
assert resolve_composer_agent(session).id == 0
def test_existing_system_configuration_is_preserved():
engine = create_engine("sqlite://")
SQLModel.metadata.create_all(engine)
with Session(engine) as session:
configured = Agent(name="组合 Agent", role="composer", builtin=True,
rules="configured rules")
session.add(configured)
session.commit()
assert resolve_composer_agent(session).id == configured.id
configured.status = "disabled"
session.add(configured)
session.commit()
assert resolve_composer_agent(session).id == 0