mirror of https://github.com/home-assistant/core
Renamed update_state to update in universal media player
Renamed update_state method in universal media player to update so that it would be called by HA when the state was being published. Moved the update_ha_state to a function inside of __init__. Updated the tests accordingly.
This commit is contained in:
parent
a84429538b
commit
57c0f96118
|
@ -149,11 +149,15 @@ class UniversalMediaPlayer(MediaPlayerDevice):
|
|||
self._attrs = attributes
|
||||
self._child_state = None
|
||||
|
||||
def on_dependency_update(*_):
|
||||
""" update ha state when dependencies update """
|
||||
self.update_ha_state(True)
|
||||
|
||||
depend = copy(children)
|
||||
for entity in attributes.values():
|
||||
depend.append(entity[0])
|
||||
|
||||
track_state_change(hass, depend, self.update_state)
|
||||
track_state_change(hass, depend, on_dependency_update)
|
||||
|
||||
def _entity_lkp(self, entity_id, state_attr=None):
|
||||
""" Looks up an entity state from hass """
|
||||
|
@ -424,7 +428,11 @@ class UniversalMediaPlayer(MediaPlayerDevice):
|
|||
""" media_play_pause media player. """
|
||||
self._call_service(SERVICE_MEDIA_PLAY_PAUSE)
|
||||
|
||||
def update_state(self, *_):
|
||||
def update(self):
|
||||
""" event to trigger a state update in HA """
|
||||
self._cache_active_child_state()
|
||||
self.update_ha_state(True)
|
||||
for child_name in self._children:
|
||||
child_state = self.hass.states.get(child_name)
|
||||
if child_state and child_state.state not in OFF_STATES:
|
||||
self._child_state = child_state
|
||||
return
|
||||
self._child_state = None
|
||||
|
|
|
@ -174,25 +174,25 @@ class TestMediaPlayer(unittest.TestCase):
|
|||
|
||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
self.assertEqual(None, ump._child_state)
|
||||
|
||||
self.mock_mp_1._state = STATE_PLAYING
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(self.mock_mp_1.entity_id,
|
||||
ump._child_state.entity_id)
|
||||
|
||||
self.mock_mp_2._state = STATE_PLAYING
|
||||
self.mock_mp_2.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(self.mock_mp_1.entity_id,
|
||||
ump._child_state.entity_id)
|
||||
|
||||
self.mock_mp_1._state = STATE_OFF
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(self.mock_mp_2.entity_id,
|
||||
ump._child_state.entity_id)
|
||||
|
||||
|
@ -212,13 +212,13 @@ class TestMediaPlayer(unittest.TestCase):
|
|||
|
||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
self.assertTrue(ump.state, STATE_OFF)
|
||||
|
||||
self.mock_mp_1._state = STATE_PLAYING
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(STATE_PLAYING, ump.state)
|
||||
|
||||
def test_state_with_children_and_attrs(self):
|
||||
|
@ -228,21 +228,21 @@ class TestMediaPlayer(unittest.TestCase):
|
|||
|
||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
self.assertEqual(ump.state, STATE_OFF)
|
||||
|
||||
self.hass.states.set(self.mock_state_switch_id, STATE_ON)
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(ump.state, STATE_ON)
|
||||
|
||||
self.mock_mp_1._state = STATE_PLAYING
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(ump.state, STATE_PLAYING)
|
||||
|
||||
self.hass.states.set(self.mock_state_switch_id, STATE_OFF)
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(ump.state, STATE_OFF)
|
||||
|
||||
def test_volume_level(self):
|
||||
|
@ -252,18 +252,18 @@ class TestMediaPlayer(unittest.TestCase):
|
|||
|
||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
self.assertEqual(None, ump.volume_level)
|
||||
|
||||
self.mock_mp_1._state = STATE_PLAYING
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(0, ump.volume_level)
|
||||
|
||||
self.mock_mp_1._volume_level = 1
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(1, ump.volume_level)
|
||||
|
||||
def test_is_volume_muted_children_only(self):
|
||||
|
@ -273,18 +273,18 @@ class TestMediaPlayer(unittest.TestCase):
|
|||
|
||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
self.assertFalse(ump.is_volume_muted)
|
||||
|
||||
self.mock_mp_1._state = STATE_PLAYING
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertFalse(ump.is_volume_muted)
|
||||
|
||||
self.mock_mp_1._is_volume_muted = True
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertTrue(ump.is_volume_muted)
|
||||
|
||||
def test_is_volume_muted_children_and_attr(self):
|
||||
|
@ -306,14 +306,14 @@ class TestMediaPlayer(unittest.TestCase):
|
|||
|
||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
self.assertEqual(0, ump.supported_media_commands)
|
||||
|
||||
self.mock_mp_1._supported_media_commands = 512
|
||||
self.mock_mp_1._state = STATE_PLAYING
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
self.assertEqual(512, ump.supported_media_commands)
|
||||
|
||||
def test_supported_media_commands_children_and_cmds(self):
|
||||
|
@ -328,13 +328,13 @@ class TestMediaPlayer(unittest.TestCase):
|
|||
|
||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
self.mock_mp_1._supported_media_commands = \
|
||||
universal.SUPPORT_VOLUME_SET
|
||||
self.mock_mp_1._state = STATE_PLAYING
|
||||
self.mock_mp_1.update_ha_state()
|
||||
ump.update_state()
|
||||
ump.update()
|
||||
|
||||
check_flags = universal.SUPPORT_TURN_ON | universal.SUPPORT_TURN_OFF \
|
||||
| universal.SUPPORT_VOLUME_STEP | universal.SUPPORT_VOLUME_MUTE
|
||||
|
|
Loading…
Reference in New Issue