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 == []