mirror of
https://github.com/home-assistant/core.git
synced 2025-07-18 10:47:10 +00:00
Merge pull request #1564 from balloob/fix_template_race_condition
Fix remaining race condition in template components.
This commit is contained in:
commit
c093a2bf54
@ -91,7 +91,7 @@ class BinarySensorTemplate(BinarySensorDevice):
|
|||||||
hass.bus.listen(EVENT_STATE_CHANGED, self._event_listener)
|
hass.bus.listen(EVENT_STATE_CHANGED, self._event_listener)
|
||||||
|
|
||||||
def _event_listener(self, event):
|
def _event_listener(self, event):
|
||||||
if not hasattr(self, 'hass'):
|
if not hasattr(self, 'hass') or self.hass is None:
|
||||||
return
|
return
|
||||||
self.update_ha_state(True)
|
self.update_ha_state(True)
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ class SensorTemplate(Entity):
|
|||||||
|
|
||||||
def _event_listener(self, event):
|
def _event_listener(self, event):
|
||||||
"""Called when the target device changes state."""
|
"""Called when the target device changes state."""
|
||||||
if not hasattr(self, 'hass'):
|
if not hasattr(self, 'hass') or self.hass is None:
|
||||||
return
|
return
|
||||||
self.update_ha_state(True)
|
self.update_ha_state(True)
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ class SwitchTemplate(SwitchDevice):
|
|||||||
|
|
||||||
def _event_listener(self, event):
|
def _event_listener(self, event):
|
||||||
"""Called when the target device changes state."""
|
"""Called when the target device changes state."""
|
||||||
if not hasattr(self, 'hass'):
|
if not hasattr(self, 'hass') or self.hass is None:
|
||||||
return
|
return
|
||||||
self.update_ha_state(True)
|
self.update_ha_state(True)
|
||||||
|
|
||||||
|
@ -91,9 +91,9 @@ class TestBinarySensorTemplate(unittest.TestCase):
|
|||||||
hass = mock.MagicMock()
|
hass = mock.MagicMock()
|
||||||
vs = template.BinarySensorTemplate(hass, 'parent', 'Parent',
|
vs = template.BinarySensorTemplate(hass, 'parent', 'Parent',
|
||||||
'motion', '{{ 1 > 1 }}')
|
'motion', '{{ 1 > 1 }}')
|
||||||
with mock.patch.object(vs, 'update_ha_state') as mock_update:
|
with mock.patch.object(vs, '_event_listener') as mock_update:
|
||||||
vs._event_listener(None)
|
vs._event_listener(None)
|
||||||
mock_update.assert_called_once_with(True)
|
assert mock_update.call_count == 1
|
||||||
|
|
||||||
def test_update(self):
|
def test_update(self):
|
||||||
""""Test the update."""
|
""""Test the update."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user