feat(k1): add local connection matrix
This commit is contained in:
@@ -45,15 +45,29 @@ def _boolean_write_flags(value: Any) -> list[bool]:
|
||||
def test_xgrids_compatibility_profile_loads_exact_firmware_and_sources() -> None:
|
||||
profile = LOADER.load_compatibility_profile()
|
||||
|
||||
assert profile["profile_id"] == "xgrids.lixelkity-k1.fw-3.0.2.direct-lan.v1"
|
||||
assert profile["profile_id"] == "xgrids.lixelkity-k1.fw-3.0.2.local-network.v2"
|
||||
assert profile["scope"]["vendor"] == "XGRIDS"
|
||||
assert profile["scope"]["model"] == "LixelKity K1"
|
||||
assert profile["scope"]["platform_type"] == "A4"
|
||||
assert profile["scope"]["firmware"] == {"match": "exact", "version": "3.0.2"}
|
||||
assert profile["scope"]["topology"] == "direct-lan"
|
||||
assert profile["scope"]["topology"] == "local-network-matrix"
|
||||
modes = _by_id(profile["scope"]["connection_modes"])
|
||||
assert {
|
||||
mode_id: mode["topology"] for mode_id, mode in modes.items()
|
||||
} == {
|
||||
"bridge": "direct-lan",
|
||||
"direct-connect": "controller-hotspot",
|
||||
"quick-connect": "device-ap",
|
||||
}
|
||||
assert LOADER.matches_target(profile, firmware="3.0.2", topology="direct-lan")
|
||||
assert LOADER.matches_target(profile, firmware="3.0.2", topology="device-ap")
|
||||
assert LOADER.matches_target(
|
||||
profile,
|
||||
firmware="3.0.2",
|
||||
topology="controller-hotspot",
|
||||
)
|
||||
assert not LOADER.matches_target(profile, firmware="3.0.3", topology="direct-lan")
|
||||
assert not LOADER.matches_target(profile, firmware="3.0.2", topology="device-ap")
|
||||
assert not LOADER.matches_target(profile, firmware="3.0.2", topology="usb")
|
||||
|
||||
for source in profile["evidence_sources"]:
|
||||
assert (REPOSITORY_ROOT / source["path"]).is_file()
|
||||
@@ -119,7 +133,7 @@ def test_xgrids_compatibility_profile_declares_only_reviewed_transports() -> Non
|
||||
assert ble["evidence"]["physical_verified"] is True
|
||||
assert ble["evidence"]["write_enabled"] is False
|
||||
|
||||
mqtt = transports["mqtt.direct-lan.fw3.v1"]
|
||||
mqtt = transports["mqtt.local-ipv4.fw3.v1"]
|
||||
assert mqtt["protocol"] == "MQTT 3.1.1"
|
||||
assert mqtt["network"]["transport"] == "TCP"
|
||||
assert mqtt["network"]["port"] == 1883
|
||||
@@ -205,6 +219,18 @@ def test_xgrids_compatibility_profile_rejects_vendor_write_promotion() -> None:
|
||||
LOADER.validate_compatibility_profile(modified)
|
||||
|
||||
|
||||
def test_xgrids_compatibility_profile_rejects_connection_matrix_drift() -> None:
|
||||
profile = LOADER.load_compatibility_profile()
|
||||
modified = copy.deepcopy(profile)
|
||||
modes = _by_id(modified["scope"]["connection_modes"])
|
||||
modes["quick-connect"]["device_network_action"] = (
|
||||
"unreviewed-ble-credential-read"
|
||||
)
|
||||
|
||||
with pytest.raises(LOADER.CompatibilityProfileError, match="differs"):
|
||||
LOADER.validate_compatibility_profile(modified)
|
||||
|
||||
|
||||
def test_xgrids_compatibility_profile_rejects_noncanonical_modeling_header() -> None:
|
||||
profile = LOADER.load_compatibility_profile()
|
||||
modified = copy.deepcopy(profile)
|
||||
|
||||
Reference in New Issue
Block a user