"""The tests for the denonavr media player platform.""" from unittest.mock import patch import pytest from homeassistant.components import media_player from homeassistant.components.denonavr import ATTR_COMMAND, DOMAIN, SERVICE_GET_COMMAND from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_NAME, CONF_PLATFORM from homeassistant.setup import async_setup_component NAME = "fake" ENTITY_ID = f"{media_player.DOMAIN}.{NAME}" @pytest.fixture(name="client") def client_fixture(): """Patch of client library for tests.""" with patch( "homeassistant.components.denonavr.media_player.denonavr.DenonAVR", autospec=True, ) as mock_client_class, patch( "homeassistant.components.denonavr.media_player.denonavr.discover" ): mock_client_class.return_value.name = NAME mock_client_class.return_value.zones = {"Main": mock_client_class.return_value} yield mock_client_class.return_value async def setup_denonavr(hass): """Initialize webostv and media_player for tests.""" assert await async_setup_component( hass, media_player.DOMAIN, { media_player.DOMAIN: { CONF_PLATFORM: "denonavr", CONF_HOST: "fake", CONF_NAME: NAME, } }, ) await hass.async_block_till_done() async def test_get_command(hass, client): """Test generic command functionality.""" await setup_denonavr(hass) data = { ATTR_ENTITY_ID: ENTITY_ID, ATTR_COMMAND: "test", } await hass.services.async_call(DOMAIN, SERVICE_GET_COMMAND, data) await hass.async_block_till_done() client.send_get_command.assert_called_with("test")