diff --git a/tests/components/mqtt/test_init.py b/tests/components/mqtt/test_init.py index 3be3d5d5ef6..3d068224243 100644 --- a/tests/components/mqtt/test_init.py +++ b/tests/components/mqtt/test_init.py @@ -249,6 +249,40 @@ class TestMQTT(unittest.TestCase): self.hass.block_till_done() self.assertEqual(0, len(self.calls)) + def test_subscribe_topic_sys_root(self): + """Test the subscription of $ root topics.""" + mqtt.subscribe(self.hass, '$test-topic/subtree/on', self.record_calls) + + fire_mqtt_message(self.hass, '$test-topic/subtree/on', 'test-payload') + + self.hass.block_till_done() + self.assertEqual(1, len(self.calls)) + self.assertEqual('$test-topic/subtree/on', self.calls[0][0]) + self.assertEqual('test-payload', self.calls[0][1]) + + def test_subscribe_topic_sys_root_and_wildcard_topic(self): + """Test the subscription of $ root and wildcard topics.""" + mqtt.subscribe(self.hass, '$test-topic/#', self.record_calls) + + fire_mqtt_message(self.hass, '$test-topic/some-topic', 'test-payload') + + self.hass.block_till_done() + self.assertEqual(1, len(self.calls)) + self.assertEqual('$test-topic/some-topic', self.calls[0][0]) + self.assertEqual('test-payload', self.calls[0][1]) + + def test_subscribe_topic_sys_root_and_wildcard_subtree_topic(self): + """Test the subscription of $ root and wildcard subtree topics.""" + mqtt.subscribe(self.hass, '$test-topic/subtree/#', self.record_calls) + + fire_mqtt_message(self.hass, '$test-topic/subtree/some-topic', + 'test-payload') + + self.hass.block_till_done() + self.assertEqual(1, len(self.calls)) + self.assertEqual('$test-topic/subtree/some-topic', self.calls[0][0]) + self.assertEqual('test-payload', self.calls[0][1]) + def test_subscribe_special_characters(self): """Test the subscription to topics with special characters.""" topic = '/test-topic/$(.)[^]{-}'