build: harden controller v2 runtime
This commit is contained in:
@@ -32,6 +32,7 @@ class FakeClient:
|
||||
self.acks = []
|
||||
self.suppress_exceptions = False
|
||||
self.connect_error = None
|
||||
self.connect_result = None
|
||||
self.loop_result = mqtt.MQTT_ERR_SUCCESS
|
||||
self.publish_acknowledged = None
|
||||
self.publish_hook = None
|
||||
@@ -52,7 +53,7 @@ class FakeClient:
|
||||
self.calls.append(("connect_async", args, kwargs))
|
||||
if self.connect_error is not None:
|
||||
raise self.connect_error
|
||||
return mqtt.MQTT_ERR_SUCCESS
|
||||
return self.connect_result
|
||||
|
||||
def connect(self, *args, **kwargs):
|
||||
self.calls.append(("connect", args, kwargs))
|
||||
@@ -123,6 +124,14 @@ class MqttAdapterTests(unittest.TestCase):
|
||||
self.assertEqual(connect[1], ("broker", 1884))
|
||||
self.assertEqual(connect[2], {"keepalive": 30})
|
||||
|
||||
def test_paho_two_connect_async_none_starts_network_loop(self):
|
||||
self.client.connect_result = None
|
||||
self.adapter.start()
|
||||
|
||||
self.assertTrue(self.adapter.started)
|
||||
self.assertIn("loop_start", [call[0] for call in self.client.calls])
|
||||
self.assertIsNone(self.adapter.last_error)
|
||||
|
||||
def test_initial_setup_oserror_does_not_escape_startup(self):
|
||||
self.client.connect_error = OSError("network unreachable")
|
||||
self.adapter.start()
|
||||
|
||||
Reference in New Issue
Block a user