43 lines
1.6 KiB
Python
43 lines
1.6 KiB
Python
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
|