1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 12:59:34 +00:00

Implement base for MQTT device registry integration (#16943)

* Implement base for MQTT device registry integration

* Lint

* Lint

* Address comments

* Lint

* Lint

* Address comments

* Only add keys if specified

See https://github.com/home-assistant/home-assistant/pull/17136#discussion_r223267185
This commit is contained in:
Otto Winter
2018-10-08 12:53:30 +02:00
committed by Paulus Schoutsen
parent 71a0274b12
commit af2402ea59
4 changed files with 153 additions and 5 deletions

View File

@@ -190,6 +190,47 @@ class TestMQTTComponent(unittest.TestCase):
# Topic names beginning with $ SHOULD NOT be used, but can
mqtt.valid_publish_topic('$SYS/')
def test_entity_device_info_schema(self):
"""Test MQTT entity device info validation."""
# just identifier
mqtt.MQTT_ENTITY_DEVICE_INFO_SCHEMA({
'identifiers': ['abcd']
})
mqtt.MQTT_ENTITY_DEVICE_INFO_SCHEMA({
'identifiers': 'abcd'
})
# just connection
mqtt.MQTT_ENTITY_DEVICE_INFO_SCHEMA({
'connections': [
['mac', '02:5b:26:a8:dc:12'],
]
})
# full device info
mqtt.MQTT_ENTITY_DEVICE_INFO_SCHEMA({
'identifiers': ['helloworld', 'hello'],
'connections': [
["mac", "02:5b:26:a8:dc:12"],
["zigbee", "zigbee_id"],
],
'manufacturer': 'Whatever',
'name': 'Beer',
'model': 'Glass',
'sw_version': '0.1-beta',
})
# no identifiers
self.assertRaises(vol.Invalid, mqtt.MQTT_ENTITY_DEVICE_INFO_SCHEMA, {
'manufacturer': 'Whatever',
'name': 'Beer',
'model': 'Glass',
'sw_version': '0.1-beta',
})
# empty identifiers
self.assertRaises(vol.Invalid, mqtt.MQTT_ENTITY_DEVICE_INFO_SCHEMA, {
'identifiers': [],
'connections': [],
'name': 'Beer',
})
# pylint: disable=invalid-name
class TestMQTTCallbacks(unittest.TestCase):