"""Test Met weather entity.""" async def test_tracking_home(hass, mock_weather): """Test we track home.""" await hass.config_entries.flow.async_init("met", context={"source": "onboarding"}) await hass.async_block_till_done() assert len(hass.states.async_entity_ids("weather")) == 1 assert len(mock_weather.mock_calls) == 3 # Test we track config await hass.config.async_update(latitude=10, longitude=20) await hass.async_block_till_done() assert len(mock_weather.mock_calls) == 6 entry = hass.config_entries.async_entries()[0] await hass.config_entries.async_remove(entry.entry_id) assert len(hass.states.async_entity_ids("weather")) == 0 async def test_not_tracking_home(hass, mock_weather): """Test when we not track home.""" await hass.config_entries.flow.async_init( "met", context={"source": "user"}, data={"name": "Somewhere", "latitude": 10, "longitude": 20, "elevation": 0}, ) await hass.async_block_till_done() assert len(hass.states.async_entity_ids("weather")) == 1 assert len(mock_weather.mock_calls) == 3 # Test we do not track config await hass.config.async_update(latitude=10, longitude=20) await hass.async_block_till_done() assert len(mock_weather.mock_calls) == 3 entry = hass.config_entries.async_entries()[0] await hass.config_entries.async_remove(entry.entry_id) assert len(hass.states.async_entity_ids("weather")) == 0