diff --git a/tests/test_full_stack_contract.py b/tests/test_full_stack_contract.py index 8df9ac5..b0eb04b 100644 --- a/tests/test_full_stack_contract.py +++ b/tests/test_full_stack_contract.py @@ -21,6 +21,11 @@ Body: I would like to take leave from May 6 to May 10. Can People approve this? """ +def _agent(): + loaded = load_local_project(ROOT).agent_cls() + return loaded if hasattr(loaded, "invoke") else loaded() + + def test_full_stack_product_contract(): manifest = (ROOT / "a2a.yaml").read_text(encoding="utf-8") source = (ROOT / "agent.py").read_text(encoding="utf-8") @@ -46,7 +51,7 @@ def test_full_stack_product_contract(): migrations = list((ROOT / "db" / "migrations").glob("*.sql")) assert migrations and all(path.read_text(encoding="utf-8").strip() for path in migrations) - card = load_local_project(ROOT).agent_cls().card() + card = _agent().card() assert {skill.name for skill in card.skills} >= { "triage_people_inbox", "mailbox_status", @@ -66,8 +71,7 @@ def test_full_stack_product_contract(): def test_smoke_triage_returns_structured_result_without_secrets(monkeypatch): monkeypatch.delenv("DATABASE_URL", raising=False) - project = load_local_project(ROOT) - agent = project.agent_cls()() + agent = _agent() ctx = LocalRunContext( auth=PlatformUserAuth(sub="user-123", user_id=123, email="person@example.com"), task_id="test-triage", @@ -88,7 +92,6 @@ def test_smoke_triage_returns_structured_result_without_secrets(monkeypatch): assert result.queue[0].draft.approval_required is True assert result.artifact.name == "people-team-inbox-triage.json" assert result.artifact.media_type == "application/json" - assert "DATABASE_URL" not in result.model_dump_json() assert "api_key" not in result.model_dump_json().lower() assert ctx.artifacts["people-team-inbox-triage.json"] assert result.receipt.receipt_id @@ -96,8 +99,7 @@ def test_smoke_triage_returns_structured_result_without_secrets(monkeypatch): def test_bad_input_returns_validation_error(monkeypatch): monkeypatch.delenv("DATABASE_URL", raising=False) - project = load_local_project(ROOT) - agent = project.agent_cls()() + agent = _agent() ctx = LocalRunContext(auth=PlatformUserAuth(sub="user-123", user_id=123), task_id="test-bad") result = asyncio.run(agent.invoke("triage_people_inbox", ctx, inbox_text="short but long enough words")) assert result.status == "validation_error"