async def test_device_setup_update_authorization_error(hass): """Test we handle an authorization error in the update step.""" device = get_device("Office") mock_api = device.get_mock_api() mock_api.check_sensors.side_effect = ( blke.AuthorizationError(), { "temperature": 30 }, ) with patch.object( hass.config_entries, "async_forward_entry_setup") as mock_forward, patch.object( hass.config_entries.flow, "async_init") as mock_init: mock_setup = await device.setup_entry(hass, mock_api=mock_api) assert mock_setup.entry.state is ConfigEntryState.LOADED assert mock_setup.api.auth.call_count == 2 assert mock_setup.api.check_sensors.call_count == 2 forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains assert mock_init.call_count == 0
async def test_device_setup_get_fwversion_os_error(hass): """Test we load the device even if we cannot read the firmware version.""" device = get_device("Office") mock_api = device.get_mock_api() mock_api.get_fwversion.side_effect = OSError() with patch.object(hass.config_entries, "async_forward_entry_setup") as mock_forward: _, mock_entry = await device.setup_entry(hass, mock_api=mock_api) assert mock_entry.state == ENTRY_STATE_LOADED forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains
async def test_device_setup_get_fwversion_broadlink_exception(hass): """Test we load the device even if we cannot read the firmware version.""" device = get_device("Office") mock_api = device.get_mock_api() mock_api.get_fwversion.side_effect = blke.BroadlinkException() with patch.object(hass.config_entries, "async_forward_entry_setup") as mock_forward: mock_setup = await device.setup_entry(hass, mock_api=mock_api) assert mock_setup.entry.state is ConfigEntryState.LOADED forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_setup.api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains
async def test_device_unload_works(hass): """Test we unload the device.""" device = get_device("Office") with patch.object(hass.config_entries, "async_forward_entry_setup"): mock_api, mock_entry = await device.setup_entry(hass) with patch.object(hass.config_entries, "async_forward_entry_unload", return_value=True) as mock_forward: await hass.config_entries.async_unload(mock_entry.entry_id) assert mock_entry.state == ENTRY_STATE_NOT_LOADED forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains
async def test_device_setup_get_fwversion_broadlink_exception(hass): """Test we load the device even if we cannot read the firmware version.""" device = get_device("Office") mock_api = device.get_mock_api() mock_api.get_fwversion.side_effect = blke.BroadlinkException() mock_entry = device.get_mock_entry() mock_entry.add_to_hass(hass) with patch("broadlink.gendevice", return_value=mock_api), patch.object( hass.config_entries, "async_forward_entry_setup") as mock_forward: await hass.config_entries.async_setup(mock_entry.entry_id) assert mock_entry.state == ENTRY_STATE_LOADED forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains
async def test_device_setup(hass): """Test a successful setup.""" device = get_device("Office") with patch.object( hass.config_entries, "async_forward_entry_setup") as mock_forward, patch.object( hass.config_entries.flow, "async_init") as mock_init: mock_api, mock_entry = await device.setup_entry(hass) assert mock_entry.state == ENTRY_STATE_LOADED assert mock_api.auth.call_count == 1 assert mock_api.get_fwversion.call_count == 1 forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains assert mock_init.call_count == 0
async def test_device_setup(hass): """Test a successful setup.""" device = get_device("Office") mock_api = device.get_mock_api() mock_entry = device.get_mock_entry() mock_entry.add_to_hass(hass) with patch("broadlink.gendevice", return_value=mock_api), patch.object( hass.config_entries, "async_forward_entry_setup") as mock_forward, patch.object( hass.config_entries.flow, "async_init") as mock_init: await hass.config_entries.async_setup(mock_entry.entry_id) assert mock_entry.state == ENTRY_STATE_LOADED assert mock_api.auth.call_count == 1 assert mock_api.get_fwversion.call_count == 1 forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains assert mock_init.call_count == 0
async def test_device_setup_update_authorization_error(hass): """Test we handle an authorization error in the update step.""" device = get_device("Office") mock_api = device.get_mock_api() mock_api.check_sensors.side_effect = (blke.AuthorizationError(), None) mock_entry = device.get_mock_entry() mock_entry.add_to_hass(hass) with patch("broadlink.gendevice", return_value=mock_api), patch.object( hass.config_entries, "async_forward_entry_setup") as mock_forward, patch.object( hass.config_entries.flow, "async_init") as mock_init: await hass.config_entries.async_setup(mock_entry.entry_id) assert mock_entry.state == ENTRY_STATE_LOADED assert mock_api.auth.call_count == 2 assert mock_api.check_sensors.call_count == 2 forward_entries = {c[1][1] for c in mock_forward.mock_calls} domains = get_domains(mock_api.type) assert mock_forward.call_count == len(domains) assert forward_entries == domains assert mock_init.call_count == 0