mirror of
https://github.com/home-assistant/core.git
synced 2026-09-25 07:51:46 -05:00
Give a sleeping printer time to wake up (#180616)
This commit is contained in:
@@ -27,7 +27,7 @@ from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo
|
||||
|
||||
from .const import CONF_BASE_PATH, CONF_SERIAL, DOMAIN
|
||||
from .const import CONF_BASE_PATH, CONF_SERIAL, DOMAIN, REQUEST_TIMEOUT
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
@@ -45,6 +45,7 @@ async def validate_input(hass: HomeAssistant, data: dict) -> dict[str, Any]:
|
||||
tls=data[CONF_SSL],
|
||||
verify_ssl=data[CONF_VERIFY_SSL],
|
||||
session=session,
|
||||
request_timeout=REQUEST_TIMEOUT,
|
||||
)
|
||||
|
||||
printer = await ipp.printer()
|
||||
|
||||
@@ -14,6 +14,9 @@ ATTR_STATE_MESSAGE = "state_message"
|
||||
ATTR_STATE_REASON = "state_reason"
|
||||
ATTR_URI_SUPPORTED = "uri_supported"
|
||||
|
||||
# Printers waking from sleep can take well over pyipp's own default
|
||||
REQUEST_TIMEOUT = 30
|
||||
|
||||
# Config Keys
|
||||
CONF_BASE_PATH = "base_path"
|
||||
CONF_SERIAL = "serial"
|
||||
|
||||
@@ -12,7 +12,7 @@ from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||
|
||||
from .const import CONF_BASE_PATH, DOMAIN
|
||||
from .const import CONF_BASE_PATH, DOMAIN, REQUEST_TIMEOUT
|
||||
|
||||
SCAN_INTERVAL = timedelta(seconds=60)
|
||||
|
||||
@@ -36,6 +36,7 @@ class IPPDataUpdateCoordinator(DataUpdateCoordinator[IPPPrinter]):
|
||||
tls=config_entry.data[CONF_SSL],
|
||||
verify_ssl=config_entry.data[CONF_VERIFY_SSL],
|
||||
session=async_get_clientsession(hass, config_entry.data[CONF_VERIFY_SSL]),
|
||||
request_timeout=REQUEST_TIMEOUT,
|
||||
)
|
||||
|
||||
super().__init__(
|
||||
|
||||
@@ -4,6 +4,7 @@ from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
from pyipp import IPPConnectionError
|
||||
|
||||
from homeassistant.components.ipp.const import REQUEST_TIMEOUT
|
||||
from homeassistant.components.ipp.coordinator import IPPDataUpdateCoordinator
|
||||
from homeassistant.config_entries import ConfigEntryState
|
||||
from homeassistant.core import HomeAssistant
|
||||
@@ -43,3 +44,12 @@ async def test_load_unload_config_entry(
|
||||
await hass.config_entries.async_unload(mock_config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
assert mock_config_entry.state is ConfigEntryState.NOT_LOADED
|
||||
|
||||
|
||||
async def test_request_timeout(
|
||||
hass: HomeAssistant, mock_config_entry: MockConfigEntry
|
||||
) -> None:
|
||||
"""Test a printer gets time to wake up before we give up on it."""
|
||||
coordinator = IPPDataUpdateCoordinator(hass, mock_config_entry)
|
||||
|
||||
assert coordinator.ipp.request_timeout == REQUEST_TIMEOUT
|
||||
|
||||
Reference in New Issue
Block a user