From 94132e5572317d65e0c35872137162372a72c680 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Wed, 17 Jun 2020 17:14:48 -0700 Subject: [PATCH] Add internal/external url to safe mode (#36894) --- homeassistant/bootstrap.py | 6 +++++- tests/test_bootstrap.py | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/homeassistant/bootstrap.py b/homeassistant/bootstrap.py index 72acb0fd785..90372c5e3ba 100644 --- a/homeassistant/bootstrap.py +++ b/homeassistant/bootstrap.py @@ -124,8 +124,12 @@ async def async_setup_hass( await hass.async_block_till_done() safe_mode = True + old_config = hass.config hass = core.HomeAssistant() - hass.config.config_dir = config_dir + hass.config.skip_pip = old_config.skip_pip + hass.config.internal_url = old_config.internal_url + hass.config.external_url = old_config.external_url + hass.config.config_dir = old_config.config_dir if safe_mode: _LOGGER.info("Starting in safe mode") diff --git a/tests/test_bootstrap.py b/tests/test_bootstrap.py index e14afdca28a..6ff145786d2 100644 --- a/tests/test_bootstrap.py +++ b/tests/test_bootstrap.py @@ -28,6 +28,11 @@ VERSION_PATH = os.path.join(get_test_config_dir(), config_util.VERSION_FILE) _LOGGER = logging.getLogger(__name__) +@pytest.fixture(autouse=True) +def apply_mock_storage(hass_storage): + """Apply the storage mock.""" + + @patch("homeassistant.bootstrap.async_enable_logging", Mock()) async def test_home_assistant_core_config_validation(hass): """Test if we pass in wrong information for HA conf.""" @@ -456,7 +461,14 @@ async def test_setup_safe_mode_if_no_frontend( with patch( "homeassistant.config.async_hass_config_yaml", - return_value={"map": {}, "person": {"invalid": True}}, + return_value={ + "homeassistant": { + "internal_url": "http://192.168.1.100:8123", + "external_url": "https://abcdef.ui.nabu.casa", + }, + "map": {}, + "person": {"invalid": True}, + }, ), patch("homeassistant.components.http.start_http_server_and_save_config"): hass = await bootstrap.async_setup_hass( config_dir=get_test_config_dir(), @@ -469,3 +481,7 @@ async def test_setup_safe_mode_if_no_frontend( ) assert "safe_mode" in hass.config.components + assert hass.config.config_dir == get_test_config_dir() + assert hass.config.skip_pip + assert hass.config.internal_url == "http://192.168.1.100:8123" + assert hass.config.external_url == "https://abcdef.ui.nabu.casa"