* add media player test and update media player logic to qualify vizio for platinum quality score * add SCAN_INTERVAL and log message once when device goes from available to unavailable and vice versa * move test constants into one file to avoid defining dupes in each test file * move constant to shrink diff * move pytest fixtures to conftest.py * remove commented out code * move unload test to test_init * updates to tests and logging based on review * bypass notification service * add fixture so component setup makes it through config flow * split failure tests into two * fix setup and entity check for test_init and setup failures in test_media_player * make domain references consistent across test files * remove logging steps that were introduced to help debug * move common patches out to new fixture and use config entry everywhere appropriate * fix docstring * add test for update options to increase code coverage * add one more assert * refactor test_media_player to move boiler plate logic out of each test into _test_init function * final refactor of test_media_player to move repeat logic into separate function * update docstrings * refactor setup failure tests to move shared logic into private function * fix last new functions code to use variable instead of static config variable * remove trailing comma * test that volume_step gets properly passed to Vizio volume function * fix comment language * assert with unittest.mock.call in _test_service and use config_entries.async_setup instead of config_entries.async_add * replace config_entries.async_add with config_entries.async_setup everywhere * simplify if statement for argument assertion * fix logging based on style guide * remove accidentally committed changes * update scan interval to something more reasonable and add tests for availability changes * change filter function to list comprehension, simplify log messages, remove default entity id from logs since it is user configurable, fix docstrings
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
"""Tests for Vizio init."""
|
|
import pytest
|
|
|
|
from homeassistant.components.media_player.const import DOMAIN as MP_DOMAIN
|
|
from homeassistant.components.vizio.const import DOMAIN
|
|
from homeassistant.helpers.typing import HomeAssistantType
|
|
from homeassistant.setup import async_setup_component
|
|
|
|
from .const import MOCK_USER_VALID_TV_CONFIG, UNIQUE_ID
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
|
async def test_setup_component(
|
|
hass: HomeAssistantType,
|
|
vizio_connect: pytest.fixture,
|
|
vizio_update: pytest.fixture,
|
|
) -> None:
|
|
"""Test component setup."""
|
|
assert await async_setup_component(
|
|
hass, DOMAIN, {DOMAIN: MOCK_USER_VALID_TV_CONFIG}
|
|
)
|
|
await hass.async_block_till_done()
|
|
assert len(hass.states.async_entity_ids(MP_DOMAIN)) == 1
|
|
|
|
|
|
async def test_load_and_unload(
|
|
hass: HomeAssistantType,
|
|
vizio_connect: pytest.fixture,
|
|
vizio_update: pytest.fixture,
|
|
) -> None:
|
|
"""Test loading and unloading entry."""
|
|
config_entry = MockConfigEntry(
|
|
domain=DOMAIN, data=MOCK_USER_VALID_TV_CONFIG, unique_id=UNIQUE_ID
|
|
)
|
|
config_entry.add_to_hass(hass)
|
|
assert await hass.config_entries.async_setup(config_entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
assert len(hass.states.async_entity_ids(MP_DOMAIN)) == 1
|
|
|
|
assert await hass.config_entries.async_unload(config_entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
assert len(hass.states.async_entity_ids(MP_DOMAIN)) == 0
|