mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
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._attrs = attributes
|
||||||
self._child_state = None
|
self._child_state = None
|
||||||
|
|
||||||
|
def on_dependency_update(*_):
|
||||||
|
""" update ha state when dependencies update """
|
||||||
|
self.update_ha_state(True)
|
||||||
|
|
||||||
depend = copy(children)
|
depend = copy(children)
|
||||||
for entity in attributes.values():
|
for entity in attributes.values():
|
||||||
depend.append(entity[0])
|
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):
|
def _entity_lkp(self, entity_id, state_attr=None):
|
||||||
""" Looks up an entity state from hass """
|
""" Looks up an entity state from hass """
|
||||||
@ -424,7 +428,11 @@ class UniversalMediaPlayer(MediaPlayerDevice):
|
|||||||
""" media_play_pause media player. """
|
""" media_play_pause media player. """
|
||||||
self._call_service(SERVICE_MEDIA_PLAY_PAUSE)
|
self._call_service(SERVICE_MEDIA_PLAY_PAUSE)
|
||||||
|
|
||||||
def update_state(self, *_):
|
def update(self):
|
||||||
""" event to trigger a state update in HA """
|
""" event to trigger a state update in HA """
|
||||||
self._cache_active_child_state()
|
for child_name in self._children:
|
||||||
self.update_ha_state(True)
|
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 = universal.UniversalMediaPlayer(self.hass, **config)
|
||||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
self.assertEqual(None, ump._child_state)
|
self.assertEqual(None, ump._child_state)
|
||||||
|
|
||||||
self.mock_mp_1._state = STATE_PLAYING
|
self.mock_mp_1._state = STATE_PLAYING
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(self.mock_mp_1.entity_id,
|
self.assertEqual(self.mock_mp_1.entity_id,
|
||||||
ump._child_state.entity_id)
|
ump._child_state.entity_id)
|
||||||
|
|
||||||
self.mock_mp_2._state = STATE_PLAYING
|
self.mock_mp_2._state = STATE_PLAYING
|
||||||
self.mock_mp_2.update_ha_state()
|
self.mock_mp_2.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(self.mock_mp_1.entity_id,
|
self.assertEqual(self.mock_mp_1.entity_id,
|
||||||
ump._child_state.entity_id)
|
ump._child_state.entity_id)
|
||||||
|
|
||||||
self.mock_mp_1._state = STATE_OFF
|
self.mock_mp_1._state = STATE_OFF
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(self.mock_mp_2.entity_id,
|
self.assertEqual(self.mock_mp_2.entity_id,
|
||||||
ump._child_state.entity_id)
|
ump._child_state.entity_id)
|
||||||
|
|
||||||
@ -212,13 +212,13 @@ class TestMediaPlayer(unittest.TestCase):
|
|||||||
|
|
||||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
self.assertTrue(ump.state, STATE_OFF)
|
self.assertTrue(ump.state, STATE_OFF)
|
||||||
|
|
||||||
self.mock_mp_1._state = STATE_PLAYING
|
self.mock_mp_1._state = STATE_PLAYING
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(STATE_PLAYING, ump.state)
|
self.assertEqual(STATE_PLAYING, ump.state)
|
||||||
|
|
||||||
def test_state_with_children_and_attrs(self):
|
def test_state_with_children_and_attrs(self):
|
||||||
@ -228,21 +228,21 @@ class TestMediaPlayer(unittest.TestCase):
|
|||||||
|
|
||||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
self.assertEqual(ump.state, STATE_OFF)
|
self.assertEqual(ump.state, STATE_OFF)
|
||||||
|
|
||||||
self.hass.states.set(self.mock_state_switch_id, STATE_ON)
|
self.hass.states.set(self.mock_state_switch_id, STATE_ON)
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(ump.state, STATE_ON)
|
self.assertEqual(ump.state, STATE_ON)
|
||||||
|
|
||||||
self.mock_mp_1._state = STATE_PLAYING
|
self.mock_mp_1._state = STATE_PLAYING
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(ump.state, STATE_PLAYING)
|
self.assertEqual(ump.state, STATE_PLAYING)
|
||||||
|
|
||||||
self.hass.states.set(self.mock_state_switch_id, STATE_OFF)
|
self.hass.states.set(self.mock_state_switch_id, STATE_OFF)
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(ump.state, STATE_OFF)
|
self.assertEqual(ump.state, STATE_OFF)
|
||||||
|
|
||||||
def test_volume_level(self):
|
def test_volume_level(self):
|
||||||
@ -252,18 +252,18 @@ class TestMediaPlayer(unittest.TestCase):
|
|||||||
|
|
||||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
self.assertEqual(None, ump.volume_level)
|
self.assertEqual(None, ump.volume_level)
|
||||||
|
|
||||||
self.mock_mp_1._state = STATE_PLAYING
|
self.mock_mp_1._state = STATE_PLAYING
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(0, ump.volume_level)
|
self.assertEqual(0, ump.volume_level)
|
||||||
|
|
||||||
self.mock_mp_1._volume_level = 1
|
self.mock_mp_1._volume_level = 1
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(1, ump.volume_level)
|
self.assertEqual(1, ump.volume_level)
|
||||||
|
|
||||||
def test_is_volume_muted_children_only(self):
|
def test_is_volume_muted_children_only(self):
|
||||||
@ -273,18 +273,18 @@ class TestMediaPlayer(unittest.TestCase):
|
|||||||
|
|
||||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
self.assertFalse(ump.is_volume_muted)
|
self.assertFalse(ump.is_volume_muted)
|
||||||
|
|
||||||
self.mock_mp_1._state = STATE_PLAYING
|
self.mock_mp_1._state = STATE_PLAYING
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertFalse(ump.is_volume_muted)
|
self.assertFalse(ump.is_volume_muted)
|
||||||
|
|
||||||
self.mock_mp_1._is_volume_muted = True
|
self.mock_mp_1._is_volume_muted = True
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertTrue(ump.is_volume_muted)
|
self.assertTrue(ump.is_volume_muted)
|
||||||
|
|
||||||
def test_is_volume_muted_children_and_attr(self):
|
def test_is_volume_muted_children_and_attr(self):
|
||||||
@ -306,14 +306,14 @@ class TestMediaPlayer(unittest.TestCase):
|
|||||||
|
|
||||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
self.assertEqual(0, ump.supported_media_commands)
|
self.assertEqual(0, ump.supported_media_commands)
|
||||||
|
|
||||||
self.mock_mp_1._supported_media_commands = 512
|
self.mock_mp_1._supported_media_commands = 512
|
||||||
self.mock_mp_1._state = STATE_PLAYING
|
self.mock_mp_1._state = STATE_PLAYING
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
self.assertEqual(512, ump.supported_media_commands)
|
self.assertEqual(512, ump.supported_media_commands)
|
||||||
|
|
||||||
def test_supported_media_commands_children_and_cmds(self):
|
def test_supported_media_commands_children_and_cmds(self):
|
||||||
@ -328,13 +328,13 @@ class TestMediaPlayer(unittest.TestCase):
|
|||||||
|
|
||||||
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
ump = universal.UniversalMediaPlayer(self.hass, **config)
|
||||||
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
ump.entity_id = media_player.ENTITY_ID_FORMAT.format(config['name'])
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
self.mock_mp_1._supported_media_commands = \
|
self.mock_mp_1._supported_media_commands = \
|
||||||
universal.SUPPORT_VOLUME_SET
|
universal.SUPPORT_VOLUME_SET
|
||||||
self.mock_mp_1._state = STATE_PLAYING
|
self.mock_mp_1._state = STATE_PLAYING
|
||||||
self.mock_mp_1.update_ha_state()
|
self.mock_mp_1.update_ha_state()
|
||||||
ump.update_state()
|
ump.update()
|
||||||
|
|
||||||
check_flags = universal.SUPPORT_TURN_ON | universal.SUPPORT_TURN_OFF \
|
check_flags = universal.SUPPORT_TURN_ON | universal.SUPPORT_TURN_OFF \
|
||||||
| universal.SUPPORT_VOLUME_STEP | universal.SUPPORT_VOLUME_MUTE
|
| universal.SUPPORT_VOLUME_STEP | universal.SUPPORT_VOLUME_MUTE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user