From 36bb0bbc1a7962c265147ea206998582022d69d9 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 25 Oct 2022 13:43:40 +0200 Subject: [PATCH] Fix `integrations.json` creation, make `iot_standards` a list (#80945) --- homeassistant/components/ultraloq/__init__.py | 1 + homeassistant/components/ultraloq/manifest.json | 2 +- homeassistant/generated/integrations.json | 4 ++++ script/hassfest/config_flow.py | 8 ++++++-- script/hassfest/manifest.py | 6 +++--- script/hassfest/model.py | 4 ++-- 6 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 homeassistant/components/ultraloq/__init__.py diff --git a/homeassistant/components/ultraloq/__init__.py b/homeassistant/components/ultraloq/__init__.py new file mode 100644 index 00000000000..b650c59a5de --- /dev/null +++ b/homeassistant/components/ultraloq/__init__.py @@ -0,0 +1 @@ +"""Virtual integration: Ultraloq.""" diff --git a/homeassistant/components/ultraloq/manifest.json b/homeassistant/components/ultraloq/manifest.json index 53e4efc99da..4775ba6caa3 100644 --- a/homeassistant/components/ultraloq/manifest.json +++ b/homeassistant/components/ultraloq/manifest.json @@ -2,5 +2,5 @@ "domain": "ultraloq", "name": "Ultraloq", "integration_type": "virtual", - "iot_standard": "zwave" + "iot_standards": ["zwave"] } diff --git a/homeassistant/generated/integrations.json b/homeassistant/generated/integrations.json index 99177d10e5a..49597366b99 100644 --- a/homeassistant/generated/integrations.json +++ b/homeassistant/generated/integrations.json @@ -2368,6 +2368,7 @@ "integrations": { "symfonisk": { "integration_type": "virtual", + "supported_by": "sonos", "name": "IKEA SYMFONISK" }, "tradfri": { @@ -5607,6 +5608,9 @@ "integrations": { "ultraloq": { "integration_type": "virtual", + "iot_standards": [ + "zwave" + ], "name": "Ultraloq" } } diff --git a/script/hassfest/config_flow.py b/script/hassfest/config_flow.py index fdf8ac0474d..0e055e69768 100644 --- a/script/hassfest/config_flow.py +++ b/script/hassfest/config_flow.py @@ -113,6 +113,10 @@ def _populate_brand_integrations( metadata["config_flow"] = integration.config_flow if integration.iot_class: metadata["iot_class"] = integration.iot_class + if integration.supported_by: + metadata["supported_by"] = integration.supported_by + if integration.iot_standards: + metadata["iot_standards"] = integration.iot_standards if integration.translated_name: integration_data["translated_name"].add(domain) else: @@ -185,8 +189,8 @@ def _generate_integrations( if integration.integration_type == "virtual": if integration.supported_by: metadata["supported_by"] = integration.supported_by - if integration.iot_standard: - metadata["iot_standard"] = integration.iot_standard + if integration.iot_standards: + metadata["iot_standards"] = integration.iot_standards else: metadata["config_flow"] = integration.config_flow if integration.iot_class: diff --git a/script/hassfest/manifest.py b/script/hassfest/manifest.py index 1df017da22d..874fb069818 100644 --- a/script/hassfest/manifest.py +++ b/script/hassfest/manifest.py @@ -263,9 +263,9 @@ VIRTUAL_INTEGRATION_MANIFEST_SCHEMA = vol.Schema( vol.Required("domain"): str, vol.Required("name"): str, vol.Required("integration_type"): "virtual", - vol.Exclusive("iot_standard", "virtual_integration"): vol.Any( - "homekit", "zigbee", "zwave" - ), + vol.Exclusive("iot_standards", "virtual_integration"): [ + vol.Any("homekit", "zigbee", "zwave") + ], vol.Exclusive("supported_by", "virtual_integration"): str, } ) diff --git a/script/hassfest/model.py b/script/hassfest/model.py index 61004bae006..65d3b1144e8 100644 --- a/script/hassfest/model.py +++ b/script/hassfest/model.py @@ -186,9 +186,9 @@ class Integration: return self.manifest.get("iot_class") @property - def iot_standard(self) -> str: + def iot_standards(self) -> list[str]: """Return the IoT standard supported by this virtual integration.""" - return self.manifest.get("iot_standard", {}) + return self.manifest.get("iot_standards", []) def add_error(self, *args: Any, **kwargs: Any) -> None: """Add an error."""