File size: 1,657 Bytes
b2005c6 ce6ad01 0d0f0f9 ce6ad01 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | from smoke.capabilities import (
CAPABILITY_CONTRACTS,
capability_names,
contracted_feature_ids,
)
from smoke.features import FEATURE_INVENTORY, feature_ids
EXPECTED_CAPABILITIES = {
"api_compatibility",
"auth",
"cli",
"config",
"extensibility",
"local_providers",
"messaging",
"openrouter",
"persistence",
"provider_routing",
"provider_runtime",
"request_behavior",
"streaming_conversion",
"voice",
}
def test_capability_map_covers_every_public_feature() -> None:
assert contracted_feature_ids() == feature_ids()
def test_capability_map_has_expected_top_level_groups() -> None:
assert capability_names() == EXPECTED_CAPABILITIES
def test_capability_contracts_are_decision_complete() -> None:
known_features = {feature.feature_id: feature for feature in FEATURE_INVENTORY}
for contract in CAPABILITY_CONTRACTS:
assert contract.feature_id in known_features, contract
assert contract.capability.strip(), contract
assert contract.subfeature.strip(), contract
assert contract.owner.strip(), contract
assert contract.inputs.strip(), contract
assert contract.outputs.strip(), contract
assert contract.failure.strip(), contract
assert contract.pytest_tests or contract.smoke_tests, contract
def test_capability_contract_owners_do_not_reference_removed_request_pipeline() -> None:
stale = [
contract
for contract in CAPABILITY_CONTRACTS
if "free_claude_code.api.request_pipeline" in contract.owner
or "ApiRequestPipeline" in contract.owner
]
assert stale == []
|