Runner
Three orthogonal helpers for organising large action lists. They all expect
the same action-list shape used by execute_action and strip
runner-specific metadata (id, depends_on, tags) before invoking
the underlying AT_ function.
Parallel runner
from je_api_testka.runner import run_actions_parallel
actions = [["AT_test_api_method_requests", {"http_method": "get",
"test_url": f"https://x.invalid/{i}"}]
for i in range(20)]
results = run_actions_parallel(actions, max_workers=8)
Tag filtering
Each action can carry a tags list inside its kwargs dict. filter_actions_by_tag
keeps only those whose tags intersect the requested set.
from je_api_testka.runner import filter_actions_by_tag
smoke_only = filter_actions_by_tag(actions, {"smoke"})
smoke_plus_untagged = filter_actions_by_tag(actions, {"smoke"}, include_untagged=True)
Dependency-aware ordering
order_actions performs a topological sort using id and depends_on
keys; cycles raise an exception.
from je_api_testka.runner import order_actions
ordered = order_actions([
["AT_login", {"id": "login"}],
["AT_query", {"id": "query", "depends_on": ["login"]}],
])