"""Tests for device tracker entities.""" import pytest from homeassistant.components.device_tracker.config_entry import ( BaseTrackerEntity, ScannerEntity ) from homeassistant.components.device_tracker.const import ( SOURCE_TYPE_ROUTER, ATTR_SOURCE_TYPE, DOMAIN ) from homeassistant.const import ( STATE_HOME, STATE_NOT_HOME, ATTR_BATTERY_LEVEL ) from tests.common import MockConfigEntry async def test_scanner_entity_device_tracker(hass): """Test ScannerEntity based device tracker.""" config_entry = MockConfigEntry(domain='test') config_entry.add_to_hass(hass) await hass.config_entries.async_forward_entry_setup( config_entry, DOMAIN) await hass.async_block_till_done() entity_id = 'device_tracker.unnamed_device' entity_state = hass.states.get(entity_id) assert entity_state.attributes == { ATTR_SOURCE_TYPE: SOURCE_TYPE_ROUTER, ATTR_BATTERY_LEVEL: 100 } assert entity_state.state == STATE_NOT_HOME entity = hass.data[DOMAIN].get_entity(entity_id) entity.set_connected() await hass.async_block_till_done() entity_state = hass.states.get(entity_id) assert entity_state.state == STATE_HOME def test_scanner_entity(): """Test coverage for base ScannerEntity entity class.""" entity = ScannerEntity() with pytest.raises(NotImplementedError): assert entity.source_type is None with pytest.raises(NotImplementedError): assert entity.is_connected is None with pytest.raises(NotImplementedError): assert entity.state == STATE_NOT_HOME assert entity.battery_level is None def test_base_tracker_entity(): """Test coverage for base BaseTrackerEntity entity class.""" entity = BaseTrackerEntity() with pytest.raises(NotImplementedError): assert entity.source_type is None assert entity.battery_level is None with pytest.raises(NotImplementedError): assert entity.state_attributes is None