From f801ec45ce4041c568b84696acbb087b1fc86a53 Mon Sep 17 00:00:00 2001
From: Brett Adams <Bre77@users.noreply.github.com>
Date: Wed, 6 Mar 2024 18:09:15 +1000
Subject: [PATCH] Bump tesla-fleet-api to 0.4.9 (#112288)

* Bump to 0.4.9

* Use SubscriptionRequired instead of PaymentRequired
---
 homeassistant/components/teslemetry/__init__.py    | 8 ++++++--
 homeassistant/components/teslemetry/config_flow.py | 8 ++++++--
 homeassistant/components/teslemetry/manifest.json  | 2 +-
 requirements_all.txt                               | 2 +-
 requirements_test_all.txt                          | 2 +-
 tests/components/teslemetry/test_config_flow.py    | 8 ++++++--
 tests/components/teslemetry/test_init.py           | 4 ++--
 7 files changed, 23 insertions(+), 11 deletions(-)

diff --git a/homeassistant/components/teslemetry/__init__.py b/homeassistant/components/teslemetry/__init__.py
index f2532fcaf5b..b1083473858 100644
--- a/homeassistant/components/teslemetry/__init__.py
+++ b/homeassistant/components/teslemetry/__init__.py
@@ -3,7 +3,11 @@ import asyncio
 from typing import Final
 
 from tesla_fleet_api import EnergySpecific, Teslemetry, VehicleSpecific
-from tesla_fleet_api.exceptions import InvalidToken, PaymentRequired, TeslaFleetError
+from tesla_fleet_api.exceptions import (
+    InvalidToken,
+    SubscriptionRequired,
+    TeslaFleetError,
+)
 
 from homeassistant.config_entries import ConfigEntry
 from homeassistant.const import CONF_ACCESS_TOKEN, Platform
@@ -36,7 +40,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
     except InvalidToken:
         LOGGER.error("Access token is invalid, unable to connect to Teslemetry")
         return False
-    except PaymentRequired:
+    except SubscriptionRequired:
         LOGGER.error("Subscription required, unable to connect to Telemetry")
         return False
     except TeslaFleetError as e:
diff --git a/homeassistant/components/teslemetry/config_flow.py b/homeassistant/components/teslemetry/config_flow.py
index 6c709a9d757..72ae712f994 100644
--- a/homeassistant/components/teslemetry/config_flow.py
+++ b/homeassistant/components/teslemetry/config_flow.py
@@ -6,7 +6,11 @@ from typing import Any
 
 from aiohttp import ClientConnectionError
 from tesla_fleet_api import Teslemetry
-from tesla_fleet_api.exceptions import InvalidToken, PaymentRequired, TeslaFleetError
+from tesla_fleet_api.exceptions import (
+    InvalidToken,
+    SubscriptionRequired,
+    TeslaFleetError,
+)
 import voluptuous as vol
 
 from homeassistant import config_entries
@@ -41,7 +45,7 @@ class TeslemetryConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
                 await teslemetry.test()
             except InvalidToken:
                 errors[CONF_ACCESS_TOKEN] = "invalid_access_token"
-            except PaymentRequired:
+            except SubscriptionRequired:
                 errors["base"] = "subscription_required"
             except ClientConnectionError:
                 errors["base"] = "cannot_connect"
diff --git a/homeassistant/components/teslemetry/manifest.json b/homeassistant/components/teslemetry/manifest.json
index ab2d52f329d..7f3f1704f2d 100644
--- a/homeassistant/components/teslemetry/manifest.json
+++ b/homeassistant/components/teslemetry/manifest.json
@@ -6,5 +6,5 @@
   "documentation": "https://www.home-assistant.io/integrations/teslemetry",
   "iot_class": "cloud_polling",
   "loggers": ["tesla-fleet-api"],
-  "requirements": ["tesla-fleet-api==0.4.6"]
+  "requirements": ["tesla-fleet-api==0.4.9"]
 }
diff --git a/requirements_all.txt b/requirements_all.txt
index f3a46575980..0ef673aa9bd 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -2677,7 +2677,7 @@ temperusb==1.6.1
 # tensorflow==2.5.0
 
 # homeassistant.components.teslemetry
-tesla-fleet-api==0.4.6
+tesla-fleet-api==0.4.9
 
 # homeassistant.components.powerwall
 tesla-powerwall==0.5.1
diff --git a/requirements_test_all.txt b/requirements_test_all.txt
index 1fe5b97e36a..a25035620b7 100644
--- a/requirements_test_all.txt
+++ b/requirements_test_all.txt
@@ -2051,7 +2051,7 @@ temescal==0.5
 temperusb==1.6.1
 
 # homeassistant.components.teslemetry
-tesla-fleet-api==0.4.6
+tesla-fleet-api==0.4.9
 
 # homeassistant.components.powerwall
 tesla-powerwall==0.5.1
diff --git a/tests/components/teslemetry/test_config_flow.py b/tests/components/teslemetry/test_config_flow.py
index b89967bfa35..3757c331996 100644
--- a/tests/components/teslemetry/test_config_flow.py
+++ b/tests/components/teslemetry/test_config_flow.py
@@ -4,7 +4,11 @@ from unittest.mock import patch
 
 from aiohttp import ClientConnectionError
 import pytest
-from tesla_fleet_api.exceptions import InvalidToken, PaymentRequired, TeslaFleetError
+from tesla_fleet_api.exceptions import (
+    InvalidToken,
+    SubscriptionRequired,
+    TeslaFleetError,
+)
 
 from homeassistant import config_entries
 from homeassistant.components.teslemetry.const import DOMAIN
@@ -54,7 +58,7 @@ async def test_form(
     ("side_effect", "error"),
     [
         (InvalidToken, {CONF_ACCESS_TOKEN: "invalid_access_token"}),
-        (PaymentRequired, {"base": "subscription_required"}),
+        (SubscriptionRequired, {"base": "subscription_required"}),
         (ClientConnectionError, {"base": "cannot_connect"}),
         (TeslaFleetError, {"base": "unknown"}),
     ],
diff --git a/tests/components/teslemetry/test_init.py b/tests/components/teslemetry/test_init.py
index ba3ecd2f0e7..9742338f27a 100644
--- a/tests/components/teslemetry/test_init.py
+++ b/tests/components/teslemetry/test_init.py
@@ -5,7 +5,7 @@ from datetime import timedelta
 from freezegun.api import FrozenDateTimeFactory
 from tesla_fleet_api.exceptions import (
     InvalidToken,
-    PaymentRequired,
+    SubscriptionRequired,
     TeslaFleetError,
     VehicleOffline,
 )
@@ -42,7 +42,7 @@ async def test_auth_failure(hass: HomeAssistant, mock_products) -> None:
 async def test_subscription_failure(hass: HomeAssistant, mock_products) -> None:
     """Test init with an client response error."""
 
-    mock_products.side_effect = PaymentRequired
+    mock_products.side_effect = SubscriptionRequired
     entry = await setup_platform(hass)
     assert entry.state is ConfigEntryState.SETUP_ERROR