"""Tests for Plex buttons.""" from datetime import timedelta from unittest.mock import patch from homeassistant.components.button import DOMAIN as BUTTON_DOMAIN, SERVICE_PRESS from homeassistant.components.plex.const import DEBOUNCE_TIMEOUT from homeassistant.const import ATTR_ENTITY_ID from homeassistant.core import HomeAssistant from homeassistant.util import dt as dt_util from tests.common import async_fire_time_changed async def test_scan_clients_button_schedule( hass: HomeAssistant, setup_plex_server ) -> None: """Test scan_clients button scheduled update.""" with patch( "homeassistant.components.plex.server.PlexServer._async_update_platforms" ) as mock_scan_clients: await setup_plex_server() mock_scan_clients.reset_mock() async_fire_time_changed( hass, dt_util.utcnow() + timedelta(seconds=DEBOUNCE_TIMEOUT), ) await hass.services.async_call( BUTTON_DOMAIN, SERVICE_PRESS, { ATTR_ENTITY_ID: "button.plex_server_1_scan_clients", }, True, ) await hass.async_block_till_done() assert mock_scan_clients.called