Clean cloud client fixture from cloud http api tests (#105649)
This commit is contained in:
parent
5bb233998e
commit
02853a62f0
1 changed files with 50 additions and 34 deletions
|
@ -6,7 +6,6 @@ from typing import Any
|
||||||
from unittest.mock import AsyncMock, MagicMock, Mock, patch
|
from unittest.mock import AsyncMock, MagicMock, Mock, patch
|
||||||
|
|
||||||
import aiohttp
|
import aiohttp
|
||||||
from aiohttp.test_utils import TestClient
|
|
||||||
from hass_nabucasa import thingtalk, voice
|
from hass_nabucasa import thingtalk, voice
|
||||||
from hass_nabucasa.auth import Unauthenticated, UnknownError
|
from hass_nabucasa.auth import Unauthenticated, UnknownError
|
||||||
from hass_nabucasa.const import STATE_CONNECTED
|
from hass_nabucasa.const import STATE_CONNECTED
|
||||||
|
@ -98,19 +97,12 @@ async def setup_cloud_fixture(hass: HomeAssistant, cloud: MagicMock) -> None:
|
||||||
await on_start_callback()
|
await on_start_callback()
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="cloud_client")
|
|
||||||
async def cloud_client_fixture(
|
|
||||||
hass: HomeAssistant, hass_client: ClientSessionGenerator
|
|
||||||
) -> TestClient:
|
|
||||||
"""Fixture that can fetch from the cloud client."""
|
|
||||||
return await hass_client()
|
|
||||||
|
|
||||||
|
|
||||||
async def test_google_actions_sync(
|
async def test_google_actions_sync(
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test syncing Google Actions."""
|
"""Test syncing Google Actions."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
with patch(
|
with patch(
|
||||||
"hass_nabucasa.cloud_api.async_google_actions_request_sync",
|
"hass_nabucasa.cloud_api.async_google_actions_request_sync",
|
||||||
return_value=Mock(status=200),
|
return_value=Mock(status=200),
|
||||||
|
@ -122,9 +114,10 @@ async def test_google_actions_sync(
|
||||||
|
|
||||||
async def test_google_actions_sync_fails(
|
async def test_google_actions_sync_fails(
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test syncing Google Actions gone bad."""
|
"""Test syncing Google Actions gone bad."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
with patch(
|
with patch(
|
||||||
"hass_nabucasa.cloud_api.async_google_actions_request_sync",
|
"hass_nabucasa.cloud_api.async_google_actions_request_sync",
|
||||||
return_value=Mock(status=HTTPStatus.INTERNAL_SERVER_ERROR),
|
return_value=Mock(status=HTTPStatus.INTERNAL_SERVER_ERROR),
|
||||||
|
@ -240,9 +233,10 @@ async def test_login_view_create_pipeline_fail(
|
||||||
async def test_login_view_random_exception(
|
async def test_login_view_random_exception(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Try logging in with random exception."""
|
"""Try logging in with random exception."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.login.side_effect = ValueError("Boom")
|
cloud.login.side_effect = ValueError("Boom")
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -257,9 +251,10 @@ async def test_login_view_random_exception(
|
||||||
async def test_login_view_invalid_json(
|
async def test_login_view_invalid_json(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Try logging in with invalid JSON."""
|
"""Try logging in with invalid JSON."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_login = cloud.login
|
mock_login = cloud.login
|
||||||
|
|
||||||
req = await cloud_client.post("/api/cloud/login", data="Not JSON")
|
req = await cloud_client.post("/api/cloud/login", data="Not JSON")
|
||||||
|
@ -271,9 +266,10 @@ async def test_login_view_invalid_json(
|
||||||
async def test_login_view_invalid_schema(
|
async def test_login_view_invalid_schema(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Try logging in with invalid schema."""
|
"""Try logging in with invalid schema."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_login = cloud.login
|
mock_login = cloud.login
|
||||||
|
|
||||||
req = await cloud_client.post("/api/cloud/login", json={"invalid": "schema"})
|
req = await cloud_client.post("/api/cloud/login", json={"invalid": "schema"})
|
||||||
|
@ -285,9 +281,10 @@ async def test_login_view_invalid_schema(
|
||||||
async def test_login_view_request_timeout(
|
async def test_login_view_request_timeout(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test request timeout while trying to log in."""
|
"""Test request timeout while trying to log in."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.login.side_effect = asyncio.TimeoutError
|
cloud.login.side_effect = asyncio.TimeoutError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -300,9 +297,10 @@ async def test_login_view_request_timeout(
|
||||||
async def test_login_view_invalid_credentials(
|
async def test_login_view_invalid_credentials(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test logging in with invalid credentials."""
|
"""Test logging in with invalid credentials."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.login.side_effect = Unauthenticated
|
cloud.login.side_effect = Unauthenticated
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -315,9 +313,10 @@ async def test_login_view_invalid_credentials(
|
||||||
async def test_login_view_unknown_error(
|
async def test_login_view_unknown_error(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test unknown error while logging in."""
|
"""Test unknown error while logging in."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.login.side_effect = UnknownError
|
cloud.login.side_effect = UnknownError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -330,9 +329,10 @@ async def test_login_view_unknown_error(
|
||||||
async def test_logout_view(
|
async def test_logout_view(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test logging out."""
|
"""Test logging out."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
req = await cloud_client.post("/api/cloud/logout")
|
req = await cloud_client.post("/api/cloud/logout")
|
||||||
|
|
||||||
assert req.status == HTTPStatus.OK
|
assert req.status == HTTPStatus.OK
|
||||||
|
@ -344,9 +344,10 @@ async def test_logout_view(
|
||||||
async def test_logout_view_request_timeout(
|
async def test_logout_view_request_timeout(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test timeout while logging out."""
|
"""Test timeout while logging out."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.logout.side_effect = asyncio.TimeoutError
|
cloud.logout.side_effect = asyncio.TimeoutError
|
||||||
|
|
||||||
req = await cloud_client.post("/api/cloud/logout")
|
req = await cloud_client.post("/api/cloud/logout")
|
||||||
|
@ -357,9 +358,10 @@ async def test_logout_view_request_timeout(
|
||||||
async def test_logout_view_unknown_error(
|
async def test_logout_view_unknown_error(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test unknown error while logging out."""
|
"""Test unknown error while logging out."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.logout.side_effect = UnknownError
|
cloud.logout.side_effect = UnknownError
|
||||||
|
|
||||||
req = await cloud_client.post("/api/cloud/logout")
|
req = await cloud_client.post("/api/cloud/logout")
|
||||||
|
@ -370,9 +372,10 @@ async def test_logout_view_unknown_error(
|
||||||
async def test_register_view_no_location(
|
async def test_register_view_no_location(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test register without location."""
|
"""Test register without location."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_cognito = cloud.auth
|
mock_cognito = cloud.auth
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.cloud.http_api.async_detect_location_info",
|
"homeassistant.components.cloud.http_api.async_detect_location_info",
|
||||||
|
@ -395,9 +398,10 @@ async def test_register_view_no_location(
|
||||||
async def test_register_view_with_location(
|
async def test_register_view_with_location(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test register with location."""
|
"""Test register with location."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_cognito = cloud.auth
|
mock_cognito = cloud.auth
|
||||||
with patch(
|
with patch(
|
||||||
"homeassistant.components.cloud.http_api.async_detect_location_info",
|
"homeassistant.components.cloud.http_api.async_detect_location_info",
|
||||||
|
@ -438,9 +442,10 @@ async def test_register_view_with_location(
|
||||||
async def test_register_view_bad_data(
|
async def test_register_view_bad_data(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test register bad data."""
|
"""Test register bad data."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_cognito = cloud.auth
|
mock_cognito = cloud.auth
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -454,9 +459,10 @@ async def test_register_view_bad_data(
|
||||||
async def test_register_view_request_timeout(
|
async def test_register_view_request_timeout(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test timeout while registering."""
|
"""Test timeout while registering."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.auth.async_register.side_effect = asyncio.TimeoutError
|
cloud.auth.async_register.side_effect = asyncio.TimeoutError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -469,9 +475,10 @@ async def test_register_view_request_timeout(
|
||||||
async def test_register_view_unknown_error(
|
async def test_register_view_unknown_error(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test unknown error while registering."""
|
"""Test unknown error while registering."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.auth.async_register.side_effect = UnknownError
|
cloud.auth.async_register.side_effect = UnknownError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -484,9 +491,10 @@ async def test_register_view_unknown_error(
|
||||||
async def test_forgot_password_view(
|
async def test_forgot_password_view(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test forgot password."""
|
"""Test forgot password."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_cognito = cloud.auth
|
mock_cognito = cloud.auth
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -500,9 +508,10 @@ async def test_forgot_password_view(
|
||||||
async def test_forgot_password_view_bad_data(
|
async def test_forgot_password_view_bad_data(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test forgot password bad data."""
|
"""Test forgot password bad data."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_cognito = cloud.auth
|
mock_cognito = cloud.auth
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -516,9 +525,10 @@ async def test_forgot_password_view_bad_data(
|
||||||
async def test_forgot_password_view_request_timeout(
|
async def test_forgot_password_view_request_timeout(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test timeout while forgot password."""
|
"""Test timeout while forgot password."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.auth.async_forgot_password.side_effect = asyncio.TimeoutError
|
cloud.auth.async_forgot_password.side_effect = asyncio.TimeoutError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -531,9 +541,10 @@ async def test_forgot_password_view_request_timeout(
|
||||||
async def test_forgot_password_view_unknown_error(
|
async def test_forgot_password_view_unknown_error(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test unknown error while forgot password."""
|
"""Test unknown error while forgot password."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.auth.async_forgot_password.side_effect = UnknownError
|
cloud.auth.async_forgot_password.side_effect = UnknownError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -546,9 +557,10 @@ async def test_forgot_password_view_unknown_error(
|
||||||
async def test_forgot_password_view_aiohttp_error(
|
async def test_forgot_password_view_aiohttp_error(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test unknown error while forgot password."""
|
"""Test unknown error while forgot password."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.auth.async_forgot_password.side_effect = aiohttp.ClientResponseError(
|
cloud.auth.async_forgot_password.side_effect = aiohttp.ClientResponseError(
|
||||||
Mock(), Mock()
|
Mock(), Mock()
|
||||||
)
|
)
|
||||||
|
@ -563,9 +575,10 @@ async def test_forgot_password_view_aiohttp_error(
|
||||||
async def test_resend_confirm_view(
|
async def test_resend_confirm_view(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test resend confirm."""
|
"""Test resend confirm."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_cognito = cloud.auth
|
mock_cognito = cloud.auth
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -579,9 +592,10 @@ async def test_resend_confirm_view(
|
||||||
async def test_resend_confirm_view_bad_data(
|
async def test_resend_confirm_view_bad_data(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test resend confirm bad data."""
|
"""Test resend confirm bad data."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
mock_cognito = cloud.auth
|
mock_cognito = cloud.auth
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -595,9 +609,10 @@ async def test_resend_confirm_view_bad_data(
|
||||||
async def test_resend_confirm_view_request_timeout(
|
async def test_resend_confirm_view_request_timeout(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test timeout while resend confirm."""
|
"""Test timeout while resend confirm."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.auth.async_resend_email_confirm.side_effect = asyncio.TimeoutError
|
cloud.auth.async_resend_email_confirm.side_effect = asyncio.TimeoutError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
@ -610,9 +625,10 @@ async def test_resend_confirm_view_request_timeout(
|
||||||
async def test_resend_confirm_view_unknown_error(
|
async def test_resend_confirm_view_unknown_error(
|
||||||
cloud: MagicMock,
|
cloud: MagicMock,
|
||||||
setup_cloud: None,
|
setup_cloud: None,
|
||||||
cloud_client: TestClient,
|
hass_client: ClientSessionGenerator,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test unknown error while resend confirm."""
|
"""Test unknown error while resend confirm."""
|
||||||
|
cloud_client = await hass_client()
|
||||||
cloud.auth.async_resend_email_confirm.side_effect = UnknownError
|
cloud.auth.async_resend_email_confirm.side_effect = UnknownError
|
||||||
|
|
||||||
req = await cloud_client.post(
|
req = await cloud_client.post(
|
||||||
|
|
Loading…
Add table
Reference in a new issue