Use the async_migrate_paypal_agreement function to get the migration URL (#83469)
* Use the async_migrate_paypal_agreement function to get the migration URL * Update URL * Handle timeout error
This commit is contained in:
parent
dfb0887765
commit
f5cfd0329c
4 changed files with 100 additions and 5 deletions
61
tests/components/cloud/test_subscription.py
Normal file
61
tests/components/cloud/test_subscription.py
Normal file
|
@ -0,0 +1,61 @@
|
|||
"""Test cloud subscription functions."""
|
||||
import asyncio
|
||||
from unittest.mock import AsyncMock, Mock
|
||||
|
||||
from hass_nabucasa import Cloud
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.cloud.subscription import (
|
||||
async_migrate_paypal_agreement,
|
||||
async_subscription_info,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
|
||||
from tests.test_util.aiohttp import AiohttpClientMocker
|
||||
|
||||
|
||||
@pytest.fixture(name="mocked_cloud")
|
||||
def mocked_cloud_object(hass: HomeAssistant) -> Cloud:
|
||||
"""Mock cloud object."""
|
||||
return Mock(
|
||||
accounts_server="accounts.nabucasa.com",
|
||||
auth=Mock(async_check_token=AsyncMock()),
|
||||
websession=async_get_clientsession(hass),
|
||||
)
|
||||
|
||||
|
||||
async def test_fetching_subscription_with_timeout_error(
|
||||
aioclient_mock: AiohttpClientMocker,
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
mocked_cloud: Cloud,
|
||||
):
|
||||
"""Test that we handle timeout error."""
|
||||
aioclient_mock.get(
|
||||
"https://accounts.nabucasa.com/payments/subscription_info",
|
||||
exc=asyncio.TimeoutError(),
|
||||
)
|
||||
|
||||
assert await async_subscription_info(mocked_cloud) is None
|
||||
assert (
|
||||
"A timeout of 10 was reached while trying to fetch subscription information"
|
||||
in caplog.text
|
||||
)
|
||||
|
||||
|
||||
async def test_migrate_paypal_agreement_with_timeout_error(
|
||||
aioclient_mock: AiohttpClientMocker,
|
||||
caplog: pytest.LogCaptureFixture,
|
||||
mocked_cloud: Cloud,
|
||||
):
|
||||
"""Test that we handle timeout error."""
|
||||
aioclient_mock.post(
|
||||
"https://accounts.nabucasa.com/payments/migrate_paypal_agreement",
|
||||
exc=asyncio.TimeoutError(),
|
||||
)
|
||||
|
||||
assert await async_migrate_paypal_agreement(mocked_cloud) is None
|
||||
assert (
|
||||
"A timeout of 10 was reached while trying to start agreement migration"
|
||||
in caplog.text
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue