async def test_get_deprecated_base_url_external(hass: HomeAssistant): """Test getting an external instance URL from the deprecated base_url.""" # Test with SSL and external domain on standard port hass.config.api = Mock(deprecated_base_url="https://example.com:443/") assert _get_deprecated_base_url(hass) == "https://example.com" assert _get_deprecated_base_url(hass, require_ssl=True) == "https://example.com" assert (_get_deprecated_base_url( hass, require_standard_port=True) == "https://example.com") # Test without SSL and external domain on non-standard port hass.config.api = Mock(deprecated_base_url="http://example.com:8123/") assert _get_deprecated_base_url(hass) == "http://example.com:8123" with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_ssl=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_standard_port=True) # Test SSL on external IP hass.config.api = Mock(deprecated_base_url="https://1.1.1.1") assert _get_deprecated_base_url(hass) == "https://1.1.1.1" assert _get_deprecated_base_url(hass, require_ssl=True) == "https://1.1.1.1" assert (_get_deprecated_base_url( hass, require_standard_port=True) == "https://1.1.1.1") with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, allow_ip=False) # Test with private IP hass.config.api = Mock(deprecated_base_url="https://10.10.10.10") with pytest.raises(NoURLAvailableError): assert _get_deprecated_base_url(hass) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, allow_ip=False) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_ssl=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_standard_port=True) # Test with local domain hass.config.api = Mock(deprecated_base_url="https://example.local") with pytest.raises(NoURLAvailableError): assert _get_deprecated_base_url(hass) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, allow_ip=False) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_ssl=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_standard_port=True) # Test with loopback hass.config.api = Mock(deprecated_base_url="https://127.0.0.42") with pytest.raises(NoURLAvailableError): assert _get_deprecated_base_url(hass) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, allow_ip=False) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_ssl=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, require_standard_port=True)
async def test_get_deprecated_base_url_internal(hass: HomeAssistant): """Test getting an internal instance URL from the deprecated base_url.""" # Test with SSL local URL hass.config.api = Mock(deprecated_base_url="https://example.local") assert _get_deprecated_base_url(hass, internal=True) == "https://example.local" assert (_get_deprecated_base_url( hass, internal=True, allow_ip=False) == "https://example.local") assert (_get_deprecated_base_url( hass, internal=True, require_ssl=True) == "https://example.local") assert (_get_deprecated_base_url( hass, internal=True, require_standard_port=True) == "https://example.local") # Test with no SSL, local IP URL hass.config.api = Mock(deprecated_base_url="http://10.10.10.10:8123") assert _get_deprecated_base_url(hass, internal=True) == "http://10.10.10.10:8123" with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, allow_ip=False) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, require_ssl=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, require_standard_port=True) # Test with SSL, local IP URL hass.config.api = Mock(deprecated_base_url="https://10.10.10.10") assert _get_deprecated_base_url(hass, internal=True) == "https://10.10.10.10" assert (_get_deprecated_base_url( hass, internal=True, require_ssl=True) == "https://10.10.10.10") assert (_get_deprecated_base_url( hass, internal=True, require_standard_port=True) == "https://10.10.10.10") # Test external URL hass.config.api = Mock(deprecated_base_url="https://example.com") with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, require_ssl=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, require_standard_port=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, allow_ip=False) # Test with loopback hass.config.api = Mock(deprecated_base_url="https://127.0.0.42") with pytest.raises(NoURLAvailableError): assert _get_deprecated_base_url(hass, internal=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, allow_ip=False) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, require_ssl=True) with pytest.raises(NoURLAvailableError): _get_deprecated_base_url(hass, internal=True, require_standard_port=True)