Migrate core from threads to async awesomeness (#3248)
* Add event loop to the core * Add block_till_done to HA core object * Fix some tests * Linting core * Fix statemachine tests * Core test fixes * fix block_till_done to wait for loop and queue to empty * fix test_core for passing, and correct start/stop/block_till_done * Fix remote tests * Fix tests: block_till_done * Fix linting * Fix more tests * Fix final linting * Fix remote test * remove unnecessary import * reduce sleep to avoid slowing down the tests excessively * fix remaining tests to wait for non-threadsafe operations * Add async_ doc strings for event loop / coroutine info * Fix command line test to block for the right timeout * Fix py3.4.2 loop var access * Fix SERVICE_CALL_LIMIT being in effect for other tests * Fix lint errors * Fix lint error with proper placement * Fix slave start to not start a timer * Add asyncio compatible listeners. * Increase min Python version to 3.4.2 * Move async backports to util * Add backported async tests * Fix linting * Simplify Python version check * Fix lint * Remove unneeded try/except and queue listener appproriately. * Fix tuple vs. list unorderable error on version compare. * Fix version tests
This commit is contained in:
parent
24f1bff7f1
commit
609d7ebea5
98 changed files with 1680 additions and 1109 deletions
|
@ -36,15 +36,15 @@ class TestMQTT(unittest.TestCase):
|
|||
def test_client_starts_on_home_assistant_start(self):
|
||||
""""Test if client start on HA launch."""
|
||||
self.hass.bus.fire(EVENT_HOMEASSISTANT_START)
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertTrue(mqtt.MQTT_CLIENT.start.called)
|
||||
|
||||
def test_client_stops_on_home_assistant_start(self):
|
||||
"""Test if client stops on HA launch."""
|
||||
self.hass.bus.fire(EVENT_HOMEASSISTANT_START)
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.hass.bus.fire(EVENT_HOMEASSISTANT_STOP)
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertTrue(mqtt.MQTT_CLIENT.stop.called)
|
||||
|
||||
def test_setup_fails_if_no_connect_broker(self):
|
||||
|
@ -75,7 +75,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
mqtt.publish(self.hass, 'test-topic', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
|
||||
self.assertEqual(1, len(self.calls))
|
||||
self.assertEqual(
|
||||
|
@ -91,7 +91,7 @@ class TestMQTT(unittest.TestCase):
|
|||
ATTR_DOMAIN: mqtt.DOMAIN,
|
||||
ATTR_SERVICE: mqtt.SERVICE_PUBLISH
|
||||
})
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertTrue(not mqtt.MQTT_CLIENT.publish.called)
|
||||
|
||||
def test_service_call_with_template_payload_renders_template(self):
|
||||
|
@ -100,7 +100,7 @@ class TestMQTT(unittest.TestCase):
|
|||
If 'payload_template' is provided and 'payload' is not, then render it.
|
||||
"""
|
||||
mqtt.publish_template(self.hass, "test/topic", "{{ 1+1 }}")
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertTrue(mqtt.MQTT_CLIENT.publish.called)
|
||||
self.assertEqual(mqtt.MQTT_CLIENT.publish.call_args[0][1], "2")
|
||||
|
||||
|
@ -153,7 +153,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'test-topic', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(1, len(self.calls))
|
||||
self.assertEqual('test-topic', self.calls[0][0])
|
||||
self.assertEqual('test-payload', self.calls[0][1])
|
||||
|
@ -162,7 +162,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'test-topic', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(1, len(self.calls))
|
||||
|
||||
def test_subscribe_topic_not_match(self):
|
||||
|
@ -171,7 +171,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'another-test-topic', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(0, len(self.calls))
|
||||
|
||||
def test_subscribe_topic_level_wildcard(self):
|
||||
|
@ -180,7 +180,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'test-topic/bier/on', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(1, len(self.calls))
|
||||
self.assertEqual('test-topic/bier/on', self.calls[0][0])
|
||||
self.assertEqual('test-payload', self.calls[0][1])
|
||||
|
@ -191,7 +191,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'test-topic/bier', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(0, len(self.calls))
|
||||
|
||||
def test_subscribe_topic_subtree_wildcard_subtree_topic(self):
|
||||
|
@ -200,7 +200,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'test-topic/bier/on', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(1, len(self.calls))
|
||||
self.assertEqual('test-topic/bier/on', self.calls[0][0])
|
||||
self.assertEqual('test-payload', self.calls[0][1])
|
||||
|
@ -211,7 +211,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'test-topic', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(1, len(self.calls))
|
||||
self.assertEqual('test-topic', self.calls[0][0])
|
||||
self.assertEqual('test-payload', self.calls[0][1])
|
||||
|
@ -222,7 +222,7 @@ class TestMQTT(unittest.TestCase):
|
|||
|
||||
fire_mqtt_message(self.hass, 'another-test-topic', 'test-payload')
|
||||
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
self.assertEqual(0, len(self.calls))
|
||||
|
||||
|
||||
|
@ -260,7 +260,7 @@ class TestMQTTCallbacks(unittest.TestCase):
|
|||
message = MQTTMessage('test_topic', 1, 'Hello World!'.encode('utf-8'))
|
||||
|
||||
mqtt.MQTT_CLIENT._mqtt_on_message(None, {'hass': self.hass}, message)
|
||||
self.hass.pool.block_till_done()
|
||||
self.hass.block_till_done()
|
||||
|
||||
self.assertEqual(1, len(calls))
|
||||
last_event = calls[0]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue