def test_mqtt_subscribes_topics_on_connect(hass): """Test subscription to topic on connect.""" mqtt_client = yield from async_mock_mqtt_client(hass) hass.data['mqtt'].subscriptions = [ mqtt.Subscription('topic/test', None), mqtt.Subscription('home/sensor', None, 2), mqtt.Subscription('still/pending', None), mqtt.Subscription('still/pending', None, 1), ] hass.add_job = mock.MagicMock() hass.data['mqtt']._mqtt_on_connect(None, None, 0, 0) yield from hass.async_block_till_done() assert mqtt_client.disconnect.call_count == 0 expected = { 'topic/test': 0, 'home/sensor': 2, 'still/pending': 1 } calls = {call[1][1]: call[1][2] for call in hass.add_job.mock_calls} assert calls == expected
def test_mqtt_disconnect_tries_reconnect(self, mock_sleep): """Test the re-connect tries.""" self.hass.data['mqtt'].subscriptions = [ mqtt.Subscription('test/progress', None, 0), mqtt.Subscription('test/progress', None, 1), mqtt.Subscription('test/topic', None, 2), ] self.hass.data['mqtt']._mqttc.reconnect.side_effect = [1, 1, 1, 0] self.hass.data['mqtt']._mqtt_on_disconnect(None, None, 1) assert self.hass.data['mqtt']._mqttc.reconnect.called assert len(self.hass.data['mqtt']._mqttc.reconnect.mock_calls) == 4 assert [call[1][0] for call in mock_sleep.mock_calls] == [1, 2, 4]
async def test_mqtt_subscribes_topics_on_connect(hass): """Test subscription to topic on connect.""" mqtt_client = await async_mock_mqtt_client(hass) hass.data["mqtt"].subscriptions = [ mqtt.Subscription("topic/test", None), mqtt.Subscription("home/sensor", None, 2), mqtt.Subscription("still/pending", None), mqtt.Subscription("still/pending", None, 1), ] hass.add_job = mock.MagicMock() hass.data["mqtt"]._mqtt_on_connect(None, None, 0, 0) await hass.async_block_till_done() assert mqtt_client.disconnect.call_count == 0 expected = {"topic/test": 0, "home/sensor": 2, "still/pending": 1} calls = {call[1][1]: call[1][2] for call in hass.add_job.mock_calls} assert calls == expected