2014-11-24 06:18:40 +00:00
|
|
|
"""
|
2015-03-04 07:50:54 +00:00
|
|
|
tests.test_component_media_player
|
2014-12-01 07:14:08 +00:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2014-11-24 06:18:40 +00:00
|
|
|
|
2015-03-04 07:50:54 +00:00
|
|
|
Tests media_player component.
|
2014-11-24 06:18:40 +00:00
|
|
|
"""
|
|
|
|
# pylint: disable=too-many-public-methods,protected-access
|
|
|
|
import unittest
|
|
|
|
|
2015-08-17 03:44:46 +00:00
|
|
|
import homeassistant.core as ha
|
2014-12-07 07:57:02 +00:00
|
|
|
from homeassistant.const import (
|
2015-06-01 07:24:17 +00:00
|
|
|
STATE_OFF,
|
2015-05-30 18:29:49 +00:00
|
|
|
SERVICE_TURN_ON, SERVICE_TURN_OFF, SERVICE_VOLUME_UP, SERVICE_VOLUME_DOWN,
|
2014-12-07 07:57:02 +00:00
|
|
|
SERVICE_MEDIA_PLAY_PAUSE, SERVICE_MEDIA_PLAY, SERVICE_MEDIA_PAUSE,
|
2015-06-01 07:24:17 +00:00
|
|
|
SERVICE_MEDIA_NEXT_TRACK, SERVICE_MEDIA_PREVIOUS_TRACK, ATTR_ENTITY_ID)
|
2015-03-04 07:50:54 +00:00
|
|
|
import homeassistant.components.media_player as media_player
|
2015-08-04 16:15:22 +00:00
|
|
|
from tests.common import mock_service
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
|
2015-03-04 07:50:54 +00:00
|
|
|
class TestMediaPlayer(unittest.TestCase):
|
|
|
|
""" Test the media_player module. """
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
def setUp(self): # pylint: disable=invalid-name
|
|
|
|
self.hass = ha.HomeAssistant()
|
|
|
|
|
2015-03-04 07:50:54 +00:00
|
|
|
self.test_entity = media_player.ENTITY_ID_FORMAT.format('living_room')
|
2015-06-01 07:24:17 +00:00
|
|
|
self.hass.states.set(self.test_entity, STATE_OFF)
|
2014-11-24 06:18:40 +00:00
|
|
|
|
2015-03-04 07:50:54 +00:00
|
|
|
self.test_entity2 = media_player.ENTITY_ID_FORMAT.format('bedroom')
|
|
|
|
self.hass.states.set(self.test_entity2, "YouTube")
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
def tearDown(self): # pylint: disable=invalid-name
|
|
|
|
""" Stop down stuff we started. """
|
2014-11-29 04:22:08 +00:00
|
|
|
self.hass.stop()
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
def test_is_on(self):
|
|
|
|
""" Test is_on method. """
|
2015-03-04 07:50:54 +00:00
|
|
|
self.assertFalse(media_player.is_on(self.hass, self.test_entity))
|
|
|
|
self.assertTrue(media_player.is_on(self.hass, self.test_entity2))
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
def test_services(self):
|
|
|
|
"""
|
|
|
|
Test if the call service methods conver to correct service calls.
|
|
|
|
"""
|
|
|
|
services = {
|
2015-05-30 18:29:49 +00:00
|
|
|
SERVICE_TURN_ON: media_player.turn_on,
|
2015-03-04 07:50:54 +00:00
|
|
|
SERVICE_TURN_OFF: media_player.turn_off,
|
|
|
|
SERVICE_VOLUME_UP: media_player.volume_up,
|
|
|
|
SERVICE_VOLUME_DOWN: media_player.volume_down,
|
|
|
|
SERVICE_MEDIA_PLAY_PAUSE: media_player.media_play_pause,
|
|
|
|
SERVICE_MEDIA_PLAY: media_player.media_play,
|
|
|
|
SERVICE_MEDIA_PAUSE: media_player.media_pause,
|
|
|
|
SERVICE_MEDIA_NEXT_TRACK: media_player.media_next_track,
|
2015-06-01 07:24:17 +00:00
|
|
|
SERVICE_MEDIA_PREVIOUS_TRACK: media_player.media_previous_track
|
2014-11-24 06:18:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
for service_name, service_method in services.items():
|
2015-03-04 07:50:54 +00:00
|
|
|
calls = mock_service(self.hass, media_player.DOMAIN, service_name)
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
service_method(self.hass)
|
2014-12-17 05:46:02 +00:00
|
|
|
self.hass.pool.block_till_done()
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
self.assertEqual(1, len(calls))
|
|
|
|
call = calls[-1]
|
2015-03-04 07:50:54 +00:00
|
|
|
self.assertEqual(media_player.DOMAIN, call.domain)
|
2014-12-14 06:49:49 +00:00
|
|
|
self.assertEqual(service_name, call.service)
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
service_method(self.hass, self.test_entity)
|
2014-12-17 05:46:02 +00:00
|
|
|
self.hass.pool.block_till_done()
|
2014-11-24 06:18:40 +00:00
|
|
|
|
|
|
|
self.assertEqual(2, len(calls))
|
|
|
|
call = calls[-1]
|
2015-03-04 07:50:54 +00:00
|
|
|
self.assertEqual(media_player.DOMAIN, call.domain)
|
2014-12-14 06:49:49 +00:00
|
|
|
self.assertEqual(service_name, call.service)
|
|
|
|
self.assertEqual(self.test_entity,
|
|
|
|
call.data.get(ATTR_ENTITY_ID))
|