Fixed a small handshaking bug thanks to tests

This commit is contained in:
Jonas Linter
2025-10-02 15:34:23 +02:00
parent 82118a1fa8
commit 48aec92794
3 changed files with 67 additions and 8 deletions

View File

@@ -260,6 +260,25 @@ class ServerCapabilities:
self.capability_dict = {"versions": list(versions_dict.values())}
# filter duplicates in actions for each version
for version in self.capability_dict["versions"]:
seen_actions = set()
unique_actions = []
for action in version["actions"]:
if action["action"] not in seen_actions:
seen_actions.add(action["action"])
unique_actions.append(action)
version["actions"] = unique_actions
# remove action_OTA_Ping from version 2024-10
for version in self.capability_dict["versions"]:
if version["version"] == "2024-10":
version["actions"] = [
action for action in version["actions"]
if action.get("action") != "action_OTA_Ping"
]
return None
def get_capabilities_dict(self) -> Dict:
@@ -379,12 +398,17 @@ class PingAction(AlpineBitsAction):
warning_response = OtaPingRs.Warnings(warning=[warning])
all_capabilities = server_capabilities.get_capabilities_json()
# remove action_OTA_Ping from version 2024-10
all_capabilities = capabilities_dict
all_capabilities_json = json.dumps(all_capabilities, indent=2)
response_ota_ping = OtaPingRs(
version="7.000",
warnings=warning_response,
echo_data=all_capabilities,
echo_data=all_capabilities_json,
success="",
)