mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Fix MQTT retained message not being re-dispatched (#12004)
* Fix MQTT retained message not being re-dispatched * Fix tests * Use paho-mqtt for retained messages * Improve code style * Store list of subscribers * Fix lint error * Adhere to Home Assistant's logging standard "Try to avoid brackets and additional quotes around the output to make it easier for users to parse the log." - https://home-assistant.io/developers/development_guidelines/ * Add reconnect tests * Fix lint error * Introduce Subscription Tests still need to be updated * Use namedtuple for MQTT messages ... And fix issues Accessing the config manually at runtime isn't ideal * Fix MQTT __init__.py tests * Updated usage of Mocks * Moved tests that were testing subscriptions out of the MQTTComponent test, because of how mock.patch was used * Adjusted the remaining tests for the MQTT clients new behavior - e.g. self.progress was removed * Updated the async_fire_mqtt_message helper * ✅ Update MQTT tests * Re-introduce the MQTT subscriptions through the dispatcher for tests - quite ugly though... 🚧 * Update fixtures to use our new MQTT mock 🎨 * 📝 Update base code according to comments * 🔨 Adjust MQTT test base * 🔨 Update other MQTT tests * 🍎 Fix carriage return in source files Apparently test_mqtt_json.py and test_mqtt_template.py were written on Windows. In order to not mess up the diff, I'll just redo the carriage return. * 🎨 Remove unused import * 📝 Remove fire_mqtt_client_message * 🐛 Fix using python 3.6 method What's very interesting is that 3.4 didn't fail on travis... * 🐛 Fix using assert directly
This commit is contained in:
committed by
Paulus Schoutsen
parent
17e5740a0c
commit
b1c0cabe6c
@@ -8,11 +8,11 @@ from unittest.mock import patch, MagicMock
|
||||
import pytest
|
||||
import requests_mock as _requests_mock
|
||||
|
||||
from homeassistant import util, setup
|
||||
from homeassistant import util
|
||||
from homeassistant.util import location
|
||||
from homeassistant.components import mqtt
|
||||
|
||||
from tests.common import async_test_home_assistant, mock_coro, INSTANCES
|
||||
from tests.common import async_test_home_assistant, INSTANCES, \
|
||||
async_mock_mqtt_component
|
||||
from tests.test_util.aiohttp import mock_aiohttp_client
|
||||
from tests.mock.zwave import MockNetwork, MockOption
|
||||
|
||||
@@ -85,17 +85,9 @@ def aioclient_mock():
|
||||
@pytest.fixture
|
||||
def mqtt_mock(loop, hass):
|
||||
"""Fixture to mock MQTT."""
|
||||
with patch('homeassistant.components.mqtt.MQTT') as mock_mqtt:
|
||||
mock_mqtt().async_connect.return_value = mock_coro(True)
|
||||
assert loop.run_until_complete(setup.async_setup_component(
|
||||
hass, mqtt.DOMAIN, {
|
||||
mqtt.DOMAIN: {
|
||||
mqtt.CONF_BROKER: 'mock-broker',
|
||||
}
|
||||
}))
|
||||
client = mock_mqtt()
|
||||
client.reset_mock()
|
||||
return client
|
||||
client = loop.run_until_complete(async_mock_mqtt_component(hass))
|
||||
client.reset_mock()
|
||||
return client
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
|
||||
Reference in New Issue
Block a user