Strategic work for IETF submission of draft-nennemann-act-01 and
draft-nennemann-wimse-ect-02:
Package restructure:
- move ACT and ECT refimpls to workspace/packages/{act,ect}/
- ietf-act and ietf-ect distribution names (sibling packages)
- cross-spec interop test plan (INTEROP-TEST-PLAN.md)
ACT draft -01 revisions:
- rename 'par' claim to 'pred' (align with ECT)
- rename 'Agent Compact Token' to 'Agent Context Token' (semantic
alignment with ECT family)
- add Applicability section (MCP, OpenAI, LangGraph, A2A, CrewAI)
- add DAG vs Linear Delegation Chains section (differentiator vs
txn-tokens-for-agents actchain, Agentic JWT, AIP/IBCTs)
- add Related Work: AIP, SentinelAgent, Agentic JWT, txn-tokens-for-agents,
HDP, SCITT-AI-agent-execution
- pin SCITT arch to -22, note AUTH48 status
Outreach drafts:
- Emirdag liaison email (SCITT-AI coordination)
- OAuth ML response on txn-tokens-for-agents-06
Strategy document:
- STRATEGY.md with phased action plan, risk register, timeline
Submodule:
- update workspace/drafts/ietf-wimse-ect pointer to -02 commit
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
"""Tests for config module."""
|
|
|
|
import os
|
|
|
|
import pytest
|
|
|
|
from ect import default_config, load_config_from_env
|
|
from ect.config import ENV_IAT_MAX_AGE_MINUTES, ENV_JTI_REPLAY_CACHE_SIZE
|
|
|
|
|
|
def test_default_config():
|
|
c = default_config()
|
|
assert c.iat_max_age_sec == 900
|
|
assert c.jti_replay_size == 0
|
|
|
|
|
|
def test_load_config_from_env():
|
|
os.environ[ENV_IAT_MAX_AGE_MINUTES] = "20"
|
|
os.environ[ENV_JTI_REPLAY_CACHE_SIZE] = "500"
|
|
try:
|
|
c = load_config_from_env()
|
|
assert c.iat_max_age_sec == 20 * 60
|
|
assert c.jti_replay_size == 500
|
|
finally:
|
|
os.environ.pop(ENV_IAT_MAX_AGE_MINUTES, None)
|
|
os.environ.pop(ENV_JTI_REPLAY_CACHE_SIZE, None)
|
|
|
|
|
|
def test_config_create_options():
|
|
c = default_config()
|
|
opts = c.create_options("my-kid")
|
|
assert opts.key_id == "my-kid"
|
|
assert opts.default_expiry_sec == c.default_expiry_sec
|
|
|
|
|
|
def test_config_verify_options():
|
|
c = default_config()
|
|
opts = c.verify_options()
|
|
assert opts.iat_max_age_sec == c.iat_max_age_sec
|
|
assert opts.dag is not None
|
|
|
|
|
|
def test_load_config_invalid_int():
|
|
os.environ[ENV_IAT_MAX_AGE_MINUTES] = "bad"
|
|
try:
|
|
c = load_config_from_env()
|
|
assert c.iat_max_age_sec == 900
|
|
finally:
|
|
os.environ.pop(ENV_IAT_MAX_AGE_MINUTES, None)
|