test_wp09_control_claim_contract.py 1.5 KB

123456789101112131415161718192021222324252627
  1. from pathlib import Path
  2. ROOT = Path(__file__).resolve().parents[2]
  3. MIGRATION = ROOT / "migrations/versions/20260813_500_runtime_control_claims.py"
  4. DEPLOYMENT = ROOT / "deployment/migrations/versions/20260813_500_runtime_control_claims.py"
  5. ROUTE = ROOT / "app/api/knowledge_base/agent_governance_routes.py"
  6. def test_wp09_control_claim_is_credential_bound_and_not_shared_runtime_callable():
  7. source = MIGRATION.read_text(encoding="utf-8")
  8. assert 'revision = "20260813_500"' in source
  9. assert 'down_revision = "20260813_499"' in source
  10. for required in (
  11. "agent_runtime_control_claims", "credential_uid", "credential_token_digest",
  12. "payload_digest", "nonce", "expires_at", "consumed_at", "FOR UPDATE",
  13. "agent_runtime_control_issue_claim", "agent_runtime_control_claimed",
  14. "REVOKE ALL ON FUNCTION public.agent_runtime_control(jsonb) FROM PUBLIC,dataops_agent_runtime,dataops_app_runtime",
  15. "SET search_path=pg_catalog,public",
  16. ):
  17. assert required in source
  18. assert "GRANT EXECUTE ON FUNCTION public.agent_runtime_control_claimed(jsonb,uuid) TO dataops_app_runtime" in source
  19. assert "GRANT EXECUTE ON FUNCTION public.agent_runtime_control_claimed(jsonb,uuid) TO dataops_agent_runtime" not in source
  20. assert source.encode() == DEPLOYMENT.read_bytes()
  21. route = ROUTE.read_text(encoding="utf-8")
  22. assert 'runtime/control' in route
  23. assert "validate_credential(agent_uid, token)" in route
  24. assert "issue_control_claim" in route and "control_claimed" in route