From 73d192b3f36ea3c87280cc68ecc85a3b16a810a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 22 Oct 2021 20:43:40 +0300 Subject: [PATCH] Use HTTPStatus instead of HTTP_ consts and magic values in comp.../[bc]* (#57989) --- homeassistant/components/bloomsky/__init__.py | 14 ++--- .../components/bluesound/media_player.py | 6 +- homeassistant/components/bond/__init__.py | 10 +-- homeassistant/components/bond/config_flow.py | 10 +-- homeassistant/components/buienradar/util.py | 5 +- homeassistant/components/clicksend/notify.py | 8 +-- .../components/clicksend_tts/notify.py | 9 +-- .../components/cloud/alexa_config.py | 4 +- homeassistant/components/cloud/client.py | 4 +- .../components/cloud/google_config.py | 4 +- homeassistant/components/cloud/http_api.py | 27 ++++---- tests/components/buienradar/test_camera.py | 4 +- tests/components/calendar/test_init.py | 7 ++- tests/components/camera/test_init.py | 12 ++-- tests/components/cloud/test_google_config.py | 9 ++- tests/components/cloud/test_http_api.py | 61 +++++++++---------- tests/components/config/test_automation.py | 9 +-- .../components/config/test_config_entries.py | 47 +++++++------- tests/components/config/test_core.py | 5 +- tests/components/config/test_customize.py | 9 +-- tests/components/config/test_group.py | 11 ++-- tests/components/config/test_scene.py | 9 +-- tests/components/config/test_script.py | 3 +- tests/components/config/test_zwave.py | 52 ++++++++-------- tests/components/conversation/test_init.py | 12 ++-- 25 files changed, 169 insertions(+), 182 deletions(-) diff --git a/homeassistant/components/bloomsky/__init__.py b/homeassistant/components/bloomsky/__init__.py index fa8d3160dc8..e04f4731918 100644 --- a/homeassistant/components/bloomsky/__init__.py +++ b/homeassistant/components/bloomsky/__init__.py @@ -1,17 +1,13 @@ """Support for BloomSky weather station.""" from datetime import timedelta +from http import HTTPStatus import logging from aiohttp.hdrs import AUTHORIZATION import requests import voluptuous as vol -from homeassistant.const import ( - CONF_API_KEY, - HTTP_METHOD_NOT_ALLOWED, - HTTP_OK, - HTTP_UNAUTHORIZED, -) +from homeassistant.const import CONF_API_KEY from homeassistant.helpers import discovery import homeassistant.helpers.config_validation as cv from homeassistant.util import Throttle @@ -72,12 +68,12 @@ class BloomSky: headers={AUTHORIZATION: self._api_key}, timeout=10, ) - if response.status_code == HTTP_UNAUTHORIZED: + if response.status_code == HTTPStatus.UNAUTHORIZED: raise RuntimeError("Invalid API_KEY") - if response.status_code == HTTP_METHOD_NOT_ALLOWED: + if response.status_code == HTTPStatus.METHOD_NOT_ALLOWED: _LOGGER.error("You have no bloomsky devices configured") return - if response.status_code != HTTP_OK: + if response.status_code != HTTPStatus.OK: _LOGGER.error("Invalid HTTP response: %s", response.status_code) return # Create dictionary keyed off of the device unique id diff --git a/homeassistant/components/bluesound/media_player.py b/homeassistant/components/bluesound/media_player.py index 04261a4137c..ddc67bed6ab 100644 --- a/homeassistant/components/bluesound/media_player.py +++ b/homeassistant/components/bluesound/media_player.py @@ -2,6 +2,7 @@ import asyncio from asyncio import CancelledError from datetime import timedelta +from http import HTTPStatus import logging from urllib import parse @@ -38,7 +39,6 @@ from homeassistant.const import ( CONF_PORT, EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_STOP, - HTTP_OK, STATE_IDLE, STATE_OFF, STATE_PAUSED, @@ -351,7 +351,7 @@ class BluesoundPlayer(MediaPlayerEntity): with async_timeout.timeout(10): response = await websession.get(url) - if response.status == HTTP_OK: + if response.status == HTTPStatus.OK: result = await response.text() if result: data = xmltodict.parse(result) @@ -395,7 +395,7 @@ class BluesoundPlayer(MediaPlayerEntity): url, headers={CONNECTION: KEEP_ALIVE} ) - if response.status == HTTP_OK: + if response.status == HTTPStatus.OK: result = await response.text() self._is_online = True self._last_status_update = dt_util.utcnow() diff --git a/homeassistant/components/bond/__init__.py b/homeassistant/components/bond/__init__.py index ecf5ea526b9..20b6b0a2ea5 100644 --- a/homeassistant/components/bond/__init__.py +++ b/homeassistant/components/bond/__init__.py @@ -1,5 +1,6 @@ """The Bond integration.""" from asyncio import TimeoutError as AsyncIOTimeoutError +from http import HTTPStatus import logging from typing import Any @@ -7,12 +8,7 @@ from aiohttp import ClientError, ClientResponseError, ClientTimeout from bond_api import Bond, BPUPSubscriptions, start_bpup from homeassistant.config_entries import ConfigEntry -from homeassistant.const import ( - CONF_ACCESS_TOKEN, - CONF_HOST, - EVENT_HOMEASSISTANT_STOP, - HTTP_UNAUTHORIZED, -) +from homeassistant.const import CONF_ACCESS_TOKEN, CONF_HOST, EVENT_HOMEASSISTANT_STOP from homeassistant.core import HomeAssistant, callback from homeassistant.exceptions import ConfigEntryNotReady from homeassistant.helpers import device_registry as dr @@ -44,7 +40,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: try: await hub.setup() except ClientResponseError as ex: - if ex.status == HTTP_UNAUTHORIZED: + if ex.status == HTTPStatus.UNAUTHORIZED: _LOGGER.error("Bond token no longer valid: %s", ex) return False raise ConfigEntryNotReady from ex diff --git a/homeassistant/components/bond/config_flow.py b/homeassistant/components/bond/config_flow.py index 073a91d54fb..6f70d37e0a1 100644 --- a/homeassistant/components/bond/config_flow.py +++ b/homeassistant/components/bond/config_flow.py @@ -1,6 +1,7 @@ """Config flow for Bond integration.""" from __future__ import annotations +from http import HTTPStatus import logging from typing import Any @@ -10,12 +11,7 @@ import voluptuous as vol from homeassistant import config_entries, exceptions from homeassistant.config_entries import ConfigEntryState -from homeassistant.const import ( - CONF_ACCESS_TOKEN, - CONF_HOST, - CONF_NAME, - HTTP_UNAUTHORIZED, -) +from homeassistant.const import CONF_ACCESS_TOKEN, CONF_HOST, CONF_NAME from homeassistant.core import HomeAssistant from homeassistant.data_entry_flow import AbortFlow, FlowResult from homeassistant.helpers.aiohttp_client import async_get_clientsession @@ -56,7 +52,7 @@ async def _validate_input(hass: HomeAssistant, data: dict[str, Any]) -> tuple[st except ClientConnectionError as error: raise InputValidationError("cannot_connect") from error except ClientResponseError as error: - if error.status == HTTP_UNAUTHORIZED: + if error.status == HTTPStatus.UNAUTHORIZED: raise InputValidationError("invalid_auth") from error raise InputValidationError("unknown") from error except Exception as error: diff --git a/homeassistant/components/buienradar/util.py b/homeassistant/components/buienradar/util.py index 8934a7a6833..63c585f8c2f 100644 --- a/homeassistant/components/buienradar/util.py +++ b/homeassistant/components/buienradar/util.py @@ -1,6 +1,7 @@ """Shared utilities for different supported platforms.""" import asyncio from datetime import datetime, timedelta +from http import HTTPStatus import logging import aiohttp @@ -25,7 +26,7 @@ from buienradar.constants import ( ) from buienradar.urls import JSON_FEED_URL, json_precipitation_forecast_url -from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE, HTTP_OK +from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.event import async_track_point_in_utc_time from homeassistant.util import dt as dt_util @@ -92,7 +93,7 @@ class BrData: result[STATUS_CODE] = resp.status result[CONTENT] = await resp.text() - if resp.status == HTTP_OK: + if resp.status == HTTPStatus.OK: result[SUCCESS] = True else: result[MESSAGE] = "Got http statuscode: %d" % (resp.status) diff --git a/homeassistant/components/clicksend/notify.py b/homeassistant/components/clicksend/notify.py index 18562260431..74f1c2e1ae5 100644 --- a/homeassistant/components/clicksend/notify.py +++ b/homeassistant/components/clicksend/notify.py @@ -1,4 +1,5 @@ """Clicksend platform for notify component.""" +from http import HTTPStatus import json import logging @@ -13,7 +14,6 @@ from homeassistant.const import ( CONF_SENDER, CONF_USERNAME, CONTENT_TYPE_JSON, - HTTP_OK, ) import homeassistant.helpers.config_validation as cv @@ -81,7 +81,7 @@ class ClicksendNotificationService(BaseNotificationService): auth=(self.username, self.api_key), timeout=TIMEOUT, ) - if resp.status_code == HTTP_OK: + if resp.status_code == HTTPStatus.OK: return obj = json.loads(resp.text) @@ -101,6 +101,4 @@ def _authenticate(config): auth=(config[CONF_USERNAME], config[CONF_API_KEY]), timeout=TIMEOUT, ) - if resp.status_code != HTTP_OK: - return False - return True + return resp.status_code == HTTPStatus.OK diff --git a/homeassistant/components/clicksend_tts/notify.py b/homeassistant/components/clicksend_tts/notify.py index 6648333bb54..712787c34e6 100644 --- a/homeassistant/components/clicksend_tts/notify.py +++ b/homeassistant/components/clicksend_tts/notify.py @@ -1,4 +1,5 @@ """clicksend_tts platform for notify component.""" +from http import HTTPStatus import json import logging @@ -12,7 +13,6 @@ from homeassistant.const import ( CONF_RECIPIENT, CONF_USERNAME, CONTENT_TYPE_JSON, - HTTP_OK, ) import homeassistant.helpers.config_validation as cv @@ -88,7 +88,7 @@ class ClicksendNotificationService(BaseNotificationService): timeout=TIMEOUT, ) - if resp.status_code == HTTP_OK: + if resp.status_code == HTTPStatus.OK: return obj = json.loads(resp.text) response_msg = obj["response_msg"] @@ -108,7 +108,4 @@ def _authenticate(config): timeout=TIMEOUT, ) - if resp.status_code != HTTP_OK: - return False - - return True + return resp.status_code == HTTPStatus.OK diff --git a/homeassistant/components/cloud/alexa_config.py b/homeassistant/components/cloud/alexa_config.py index 3e82e662fe9..41bab5e0bd4 100644 --- a/homeassistant/components/cloud/alexa_config.py +++ b/homeassistant/components/cloud/alexa_config.py @@ -2,6 +2,7 @@ import asyncio from contextlib import suppress from datetime import timedelta +from http import HTTPStatus import logging import aiohttp @@ -19,7 +20,6 @@ from homeassistant.const import ( CLOUD_NEVER_EXPOSED_ENTITIES, ENTITY_CATEGORY_CONFIG, ENTITY_CATEGORY_DIAGNOSTIC, - HTTP_BAD_REQUEST, ) from homeassistant.core import HomeAssistant, callback, split_entity_id from homeassistant.helpers import entity_registry as er, start @@ -161,7 +161,7 @@ class AlexaConfig(alexa_config.AbstractConfig): resp = await cloud_api.async_alexa_access_token(self._cloud) body = await resp.json() - if resp.status == HTTP_BAD_REQUEST: + if resp.status == HTTPStatus.BAD_REQUEST: if body["reason"] in ("RefreshTokenNotFound", "UnknownRegion"): if self.should_report_state: await self._prefs.async_update(alexa_report_state=False) diff --git a/homeassistant/components/cloud/client.py b/homeassistant/components/cloud/client.py index 54c471e2a83..5a10e1d1e5c 100644 --- a/homeassistant/components/cloud/client.py +++ b/homeassistant/components/cloud/client.py @@ -2,6 +2,7 @@ from __future__ import annotations import asyncio +from http import HTTPStatus import logging from pathlib import Path from typing import Any @@ -14,7 +15,6 @@ from homeassistant.components.alexa import ( smart_home as alexa_sh, ) from homeassistant.components.google_assistant import const as gc, smart_home as ga -from homeassistant.const import HTTP_OK from homeassistant.core import Context, HomeAssistant, callback from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.helpers.event import async_call_later @@ -210,7 +210,7 @@ class CloudClient(Interface): break if found is None: - return {"status": HTTP_OK} + return {"status": HTTPStatus.OK} request = MockRequest( content=payload["body"].encode("utf-8"), diff --git a/homeassistant/components/cloud/google_config.py b/homeassistant/components/cloud/google_config.py index 4f71aeeb9a0..f3f5a64bbd6 100644 --- a/homeassistant/components/cloud/google_config.py +++ b/homeassistant/components/cloud/google_config.py @@ -1,5 +1,6 @@ """Google config for Cloud.""" import asyncio +from http import HTTPStatus import logging from hass_nabucasa import Cloud, cloud_api @@ -11,7 +12,6 @@ from homeassistant.const import ( CLOUD_NEVER_EXPOSED_ENTITIES, ENTITY_CATEGORY_CONFIG, ENTITY_CATEGORY_DIAGNOSTIC, - HTTP_OK, ) from homeassistant.core import CoreState, split_entity_id from homeassistant.helpers import entity_registry as er, start @@ -178,7 +178,7 @@ class CloudGoogleConfig(AbstractConfig): async def _async_request_sync_devices(self, agent_user_id: str): """Trigger a sync with Google.""" if self._sync_entities_lock.locked(): - return HTTP_OK + return HTTPStatus.OK async with self._sync_entities_lock: resp = await cloud_api.async_google_actions_request_sync(self._cloud) diff --git a/homeassistant/components/cloud/http_api.py b/homeassistant/components/cloud/http_api.py index 1f17f46013e..5bfebec40a3 100644 --- a/homeassistant/components/cloud/http_api.py +++ b/homeassistant/components/cloud/http_api.py @@ -1,6 +1,7 @@ """The HTTP api to control the cloud integration.""" import asyncio from functools import wraps +from http import HTTPStatus import logging import aiohttp @@ -20,12 +21,6 @@ from homeassistant.components.google_assistant import helpers as google_helpers from homeassistant.components.http import HomeAssistantView from homeassistant.components.http.data_validator import RequestDataValidator from homeassistant.components.websocket_api import const as ws_const -from homeassistant.const import ( - HTTP_BAD_GATEWAY, - HTTP_BAD_REQUEST, - HTTP_INTERNAL_SERVER_ERROR, - HTTP_UNAUTHORIZED, -) from .const import ( DOMAIN, @@ -48,19 +43,19 @@ _LOGGER = logging.getLogger(__name__) _CLOUD_ERRORS = { InvalidTrustedNetworks: ( - HTTP_INTERNAL_SERVER_ERROR, + HTTPStatus.INTERNAL_SERVER_ERROR, "Remote UI not compatible with 127.0.0.1/::1 as a trusted network.", ), InvalidTrustedProxies: ( - HTTP_INTERNAL_SERVER_ERROR, + HTTPStatus.INTERNAL_SERVER_ERROR, "Remote UI not compatible with 127.0.0.1/::1 as trusted proxies.", ), asyncio.TimeoutError: ( - HTTP_BAD_GATEWAY, + HTTPStatus.BAD_GATEWAY, "Unable to reach the Home Assistant cloud.", ), aiohttp.ClientError: ( - HTTP_INTERNAL_SERVER_ERROR, + HTTPStatus.INTERNAL_SERVER_ERROR, "Error making internal request", ), } @@ -96,15 +91,15 @@ async def async_setup(hass): _CLOUD_ERRORS.update( { - auth.UserNotFound: (HTTP_BAD_REQUEST, "User does not exist."), - auth.UserNotConfirmed: (HTTP_BAD_REQUEST, "Email not confirmed."), + auth.UserNotFound: (HTTPStatus.BAD_REQUEST, "User does not exist."), + auth.UserNotConfirmed: (HTTPStatus.BAD_REQUEST, "Email not confirmed."), auth.UserExists: ( - HTTP_BAD_REQUEST, + HTTPStatus.BAD_REQUEST, "An account with the given email already exists.", ), - auth.Unauthenticated: (HTTP_UNAUTHORIZED, "Authentication failed."), + auth.Unauthenticated: (HTTPStatus.UNAUTHORIZED, "Authentication failed."), auth.PasswordChangeRequired: ( - HTTP_BAD_REQUEST, + HTTPStatus.BAD_REQUEST, "Password change required.", ), } @@ -157,7 +152,7 @@ def _process_cloud_exception(exc, where): if err_info is None: _LOGGER.exception("Unexpected error processing request for %s", where) - err_info = (HTTP_BAD_GATEWAY, f"Unexpected error: {exc}") + err_info = (HTTPStatus.BAD_GATEWAY, f"Unexpected error: {exc}") return err_info diff --git a/tests/components/buienradar/test_camera.py b/tests/components/buienradar/test_camera.py index 1688dd83d2c..9267caff959 100644 --- a/tests/components/buienradar/test_camera.py +++ b/tests/components/buienradar/test_camera.py @@ -56,7 +56,7 @@ async def test_fetching_url_and_caching(aioclient_mock, hass, hass_client): resp = await client.get("/api/camera_proxy/camera.buienradar_51_5288505_400216") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK assert aioclient_mock.call_count == 1 body = await resp.text() assert body == "hello world" @@ -86,7 +86,7 @@ async def test_expire_delta(aioclient_mock, hass, hass_client): resp = await client.get("/api/camera_proxy/camera.buienradar_51_5288505_400216") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK assert aioclient_mock.call_count == 1 body = await resp.text() assert body == "hello world" diff --git a/tests/components/calendar/test_init.py b/tests/components/calendar/test_init.py index 1f87c38c6bf..8ab210e7180 100644 --- a/tests/components/calendar/test_init.py +++ b/tests/components/calendar/test_init.py @@ -1,5 +1,6 @@ """The tests for the calendar component.""" from datetime import timedelta +from http import HTTPStatus from homeassistant.bootstrap import async_setup_component import homeassistant.util.dt as dt_util @@ -11,7 +12,7 @@ async def test_events_http_api(hass, hass_client): await hass.async_block_till_done() client = await hass_client() response = await client.get("/api/calendars/calendar.calendar_2") - assert response.status == 400 + assert response.status == HTTPStatus.BAD_REQUEST start = dt_util.now() end = start + timedelta(days=1) response = await client.get( @@ -19,7 +20,7 @@ async def test_events_http_api(hass, hass_client): start.isoformat(), end.isoformat() ) ) - assert response.status == 200 + assert response.status == HTTPStatus.OK events = await response.json() assert events[0]["summary"] == "Future Event" assert events[0]["title"] == "Future Event" @@ -31,7 +32,7 @@ async def test_calendars_http_api(hass, hass_client): await hass.async_block_till_done() client = await hass_client() response = await client.get("/api/calendars") - assert response.status == 200 + assert response.status == HTTPStatus.OK data = await response.json() assert data == [ {"entity_id": "calendar.calendar_1", "name": "Calendar 1"}, diff --git a/tests/components/camera/test_init.py b/tests/components/camera/test_init.py index c37c1b2909a..3f8f62449ba 100644 --- a/tests/components/camera/test_init.py +++ b/tests/components/camera/test_init.py @@ -1,6 +1,7 @@ """The tests for the camera component.""" import asyncio import base64 +from http import HTTPStatus import io from unittest.mock import Mock, PropertyMock, mock_open, patch @@ -15,12 +16,7 @@ from homeassistant.components.camera.const import ( from homeassistant.components.camera.prefs import CameraEntityPreferences from homeassistant.components.websocket_api.const import TYPE_RESULT from homeassistant.config import async_process_ha_core_config -from homeassistant.const import ( - ATTR_ENTITY_ID, - EVENT_HOMEASSISTANT_START, - HTTP_BAD_GATEWAY, - HTTP_OK, -) +from homeassistant.const import ATTR_ENTITY_ID, EVENT_HOMEASSISTANT_START from homeassistant.exceptions import HomeAssistantError from homeassistant.setup import async_setup_component @@ -481,14 +477,14 @@ async def test_camera_proxy_stream(hass, mock_camera, hass_client): client = await hass_client() response = await client.get("/api/camera_proxy_stream/camera.demo_camera") - assert response.status == HTTP_OK + assert response.status == HTTPStatus.OK with patch( "homeassistant.components.demo.camera.DemoCamera.handle_async_mjpeg_stream", return_value=None, ): response = await client.get("/api/camera_proxy_stream/camera.demo_camera") - assert response.status == HTTP_BAD_GATEWAY + assert response.status == HTTPStatus.BAD_GATEWAY async def test_websocket_web_rtc_offer( diff --git a/tests/components/cloud/test_google_config.py b/tests/components/cloud/test_google_config.py index 61d93b5bc85..99fa24a6cb9 100644 --- a/tests/components/cloud/test_google_config.py +++ b/tests/components/cloud/test_google_config.py @@ -1,4 +1,5 @@ """Test the Cloud Google Config.""" +from http import HTTPStatus from unittest.mock import Mock, patch import pytest @@ -6,7 +7,7 @@ import pytest from homeassistant.components.cloud import GACTIONS_SCHEMA from homeassistant.components.cloud.google_config import CloudGoogleConfig from homeassistant.components.google_assistant import helpers as ga_helpers -from homeassistant.const import EVENT_HOMEASSISTANT_STARTED, HTTP_NOT_FOUND +from homeassistant.const import EVENT_HOMEASSISTANT_STARTED from homeassistant.core import CoreState, State from homeassistant.helpers.entity_registry import EVENT_ENTITY_REGISTRY_UPDATED from homeassistant.util.dt import utcnow @@ -71,9 +72,11 @@ async def test_sync_entities(mock_conf, hass, cloud_prefs): with patch( "hass_nabucasa.cloud_api.async_google_actions_request_sync", - return_value=Mock(status=HTTP_NOT_FOUND), + return_value=Mock(status=HTTPStatus.NOT_FOUND), ) as mock_request_sync: - assert await mock_conf.async_sync_entities("mock-user-id") == HTTP_NOT_FOUND + assert ( + await mock_conf.async_sync_entities("mock-user-id") == HTTPStatus.NOT_FOUND + ) assert len(mock_conf._store.agent_user_ids) == 0 assert len(mock_request_sync.mock_calls) == 1 diff --git a/tests/components/cloud/test_http_api.py b/tests/components/cloud/test_http_api.py index a7181ea4a73..566f2041fdd 100644 --- a/tests/components/cloud/test_http_api.py +++ b/tests/components/cloud/test_http_api.py @@ -16,7 +16,6 @@ from homeassistant.components.alexa import errors as alexa_errors from homeassistant.components.alexa.entities import LightCapabilities from homeassistant.components.cloud.const import DOMAIN, RequireRelink from homeassistant.components.google_assistant.helpers import GoogleEntity -from homeassistant.const import HTTP_INTERNAL_SERVER_ERROR from homeassistant.core import State from . import mock_cloud, mock_cloud_prefs @@ -90,7 +89,7 @@ async def test_google_actions_sync(mock_cognito, mock_cloud_login, cloud_client) return_value=Mock(status=200), ) as mock_request_sync: req = await cloud_client.post("/api/cloud/google_actions/sync") - assert req.status == 200 + assert req.status == HTTPStatus.OK assert len(mock_request_sync.mock_calls) == 1 @@ -98,10 +97,10 @@ async def test_google_actions_sync_fails(mock_cognito, mock_cloud_login, cloud_c """Test syncing Google Actions gone bad.""" with patch( "hass_nabucasa.cloud_api.async_google_actions_request_sync", - return_value=Mock(status=HTTP_INTERNAL_SERVER_ERROR), + return_value=Mock(status=HTTPStatus.INTERNAL_SERVER_ERROR), ) as mock_request_sync: req = await cloud_client.post("/api/cloud/google_actions/sync") - assert req.status == HTTP_INTERNAL_SERVER_ERROR + assert req.status == HTTPStatus.INTERNAL_SERVER_ERROR assert len(mock_request_sync.mock_calls) == 1 @@ -113,7 +112,7 @@ async def test_login_view(hass, cloud_client): "/api/cloud/login", json={"email": "my_username", "password": "my_password"} ) - assert req.status == 200 + assert req.status == HTTPStatus.OK result = await req.json() assert result == {"success": True} @@ -124,7 +123,7 @@ async def test_login_view_random_exception(cloud_client): req = await cloud_client.post( "/api/cloud/login", json={"email": "my_username", "password": "my_password"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY resp = await req.json() assert resp == {"code": "valueerror", "message": "Unexpected error: Boom"} @@ -133,7 +132,7 @@ async def test_login_view_invalid_json(cloud_client): """Try logging in with invalid JSON.""" with patch("hass_nabucasa.auth.CognitoAuth.async_login") as mock_login: req = await cloud_client.post("/api/cloud/login", data="Not JSON") - assert req.status == 400 + assert req.status == HTTPStatus.BAD_REQUEST assert len(mock_login.mock_calls) == 0 @@ -141,7 +140,7 @@ async def test_login_view_invalid_schema(cloud_client): """Try logging in with invalid schema.""" with patch("hass_nabucasa.auth.CognitoAuth.async_login") as mock_login: req = await cloud_client.post("/api/cloud/login", json={"invalid": "schema"}) - assert req.status == 400 + assert req.status == HTTPStatus.BAD_REQUEST assert len(mock_login.mock_calls) == 0 @@ -154,7 +153,7 @@ async def test_login_view_request_timeout(cloud_client): "/api/cloud/login", json={"email": "my_username", "password": "my_password"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_login_view_invalid_credentials(cloud_client): @@ -166,7 +165,7 @@ async def test_login_view_invalid_credentials(cloud_client): "/api/cloud/login", json={"email": "my_username", "password": "my_password"} ) - assert req.status == 401 + assert req.status == HTTPStatus.UNAUTHORIZED async def test_login_view_unknown_error(cloud_client): @@ -176,7 +175,7 @@ async def test_login_view_unknown_error(cloud_client): "/api/cloud/login", json={"email": "my_username", "password": "my_password"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_logout_view(hass, cloud_client): @@ -184,7 +183,7 @@ async def test_logout_view(hass, cloud_client): cloud = hass.data["cloud"] = MagicMock() cloud.logout = AsyncMock(return_value=None) req = await cloud_client.post("/api/cloud/logout") - assert req.status == 200 + assert req.status == HTTPStatus.OK data = await req.json() assert data == {"message": "ok"} assert len(cloud.logout.mock_calls) == 1 @@ -195,7 +194,7 @@ async def test_logout_view_request_timeout(hass, cloud_client): cloud = hass.data["cloud"] = MagicMock() cloud.logout.side_effect = asyncio.TimeoutError req = await cloud_client.post("/api/cloud/logout") - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_logout_view_unknown_error(hass, cloud_client): @@ -203,7 +202,7 @@ async def test_logout_view_unknown_error(hass, cloud_client): cloud = hass.data["cloud"] = MagicMock() cloud.logout.side_effect = UnknownError req = await cloud_client.post("/api/cloud/logout") - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_register_view(mock_cognito, cloud_client): @@ -211,7 +210,7 @@ async def test_register_view(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/register", json={"email": "hello@bla.com", "password": "falcon42"} ) - assert req.status == 200 + assert req.status == HTTPStatus.OK assert len(mock_cognito.register.mock_calls) == 1 result_email, result_pass = mock_cognito.register.mock_calls[0][1] assert result_email == "hello@bla.com" @@ -223,7 +222,7 @@ async def test_register_view_bad_data(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/register", json={"email": "hello@bla.com", "not_password": "falcon"} ) - assert req.status == 400 + assert req.status == HTTPStatus.BAD_REQUEST assert len(mock_cognito.logout.mock_calls) == 0 @@ -233,7 +232,7 @@ async def test_register_view_request_timeout(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/register", json={"email": "hello@bla.com", "password": "falcon42"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_register_view_unknown_error(mock_cognito, cloud_client): @@ -242,7 +241,7 @@ async def test_register_view_unknown_error(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/register", json={"email": "hello@bla.com", "password": "falcon42"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_forgot_password_view(mock_cognito, cloud_client): @@ -250,7 +249,7 @@ async def test_forgot_password_view(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/forgot_password", json={"email": "hello@bla.com"} ) - assert req.status == 200 + assert req.status == HTTPStatus.OK assert len(mock_cognito.initiate_forgot_password.mock_calls) == 1 @@ -259,7 +258,7 @@ async def test_forgot_password_view_bad_data(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/forgot_password", json={"not_email": "hello@bla.com"} ) - assert req.status == 400 + assert req.status == HTTPStatus.BAD_REQUEST assert len(mock_cognito.initiate_forgot_password.mock_calls) == 0 @@ -269,7 +268,7 @@ async def test_forgot_password_view_request_timeout(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/forgot_password", json={"email": "hello@bla.com"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_forgot_password_view_unknown_error(mock_cognito, cloud_client): @@ -278,7 +277,7 @@ async def test_forgot_password_view_unknown_error(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/forgot_password", json={"email": "hello@bla.com"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_forgot_password_view_aiohttp_error(mock_cognito, cloud_client): @@ -289,7 +288,7 @@ async def test_forgot_password_view_aiohttp_error(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/forgot_password", json={"email": "hello@bla.com"} ) - assert req.status == 500 + assert req.status == HTTPStatus.INTERNAL_SERVER_ERROR async def test_resend_confirm_view(mock_cognito, cloud_client): @@ -297,7 +296,7 @@ async def test_resend_confirm_view(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/resend_confirm", json={"email": "hello@bla.com"} ) - assert req.status == 200 + assert req.status == HTTPStatus.OK assert len(mock_cognito.client.resend_confirmation_code.mock_calls) == 1 @@ -306,7 +305,7 @@ async def test_resend_confirm_view_bad_data(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/resend_confirm", json={"not_email": "hello@bla.com"} ) - assert req.status == 400 + assert req.status == HTTPStatus.BAD_REQUEST assert len(mock_cognito.client.resend_confirmation_code.mock_calls) == 0 @@ -316,7 +315,7 @@ async def test_resend_confirm_view_request_timeout(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/resend_confirm", json={"email": "hello@bla.com"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_resend_confirm_view_unknown_error(mock_cognito, cloud_client): @@ -325,7 +324,7 @@ async def test_resend_confirm_view_unknown_error(mock_cognito, cloud_client): req = await cloud_client.post( "/api/cloud/resend_confirm", json={"email": "hello@bla.com"} ) - assert req.status == 502 + assert req.status == HTTPStatus.BAD_GATEWAY async def test_websocket_status( @@ -583,7 +582,7 @@ async def test_enabling_remote_trusted_networks_local4( response = await client.receive_json() assert not response["success"] - assert response["error"]["code"] == HTTP_INTERNAL_SERVER_ERROR + assert response["error"]["code"] == HTTPStatus.INTERNAL_SERVER_ERROR assert ( response["error"]["message"] == "Remote UI not compatible with 127.0.0.1/::1 as a trusted network." @@ -616,7 +615,7 @@ async def test_enabling_remote_trusted_networks_local6( response = await client.receive_json() assert not response["success"] - assert response["error"]["code"] == HTTP_INTERNAL_SERVER_ERROR + assert response["error"]["code"] == HTTPStatus.INTERNAL_SERVER_ERROR assert ( response["error"]["message"] == "Remote UI not compatible with 127.0.0.1/::1 as a trusted network." @@ -745,7 +744,7 @@ async def test_enabling_remote_trusted_proxies_local4( response = await client.receive_json() assert not response["success"] - assert response["error"]["code"] == HTTP_INTERNAL_SERVER_ERROR + assert response["error"]["code"] == HTTPStatus.INTERNAL_SERVER_ERROR assert ( response["error"]["message"] == "Remote UI not compatible with 127.0.0.1/::1 as trusted proxies." @@ -769,7 +768,7 @@ async def test_enabling_remote_trusted_proxies_local6( response = await client.receive_json() assert not response["success"] - assert response["error"]["code"] == HTTP_INTERNAL_SERVER_ERROR + assert response["error"]["code"] == HTTPStatus.INTERNAL_SERVER_ERROR assert ( response["error"]["message"] == "Remote UI not compatible with 127.0.0.1/::1 as trusted proxies." diff --git a/tests/components/config/test_automation.py b/tests/components/config/test_automation.py index 6aeb71a7fd0..0950e3d0358 100644 --- a/tests/components/config/test_automation.py +++ b/tests/components/config/test_automation.py @@ -1,4 +1,5 @@ """Test Automation config panel.""" +from http import HTTPStatus import json from unittest.mock import patch @@ -23,7 +24,7 @@ async def test_get_device_config(hass, hass_client): with patch("homeassistant.components.config._read", mock_read): resp = await client.get("/api/config/automation/config/moon") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"id": "moon"} @@ -56,7 +57,7 @@ async def test_update_device_config(hass, hass_client): data=json.dumps({"trigger": [], "action": [], "condition": []}), ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -99,7 +100,7 @@ async def test_bad_formatted_automations(hass, hass_client): ) await hass.async_block_till_done() - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -157,7 +158,7 @@ async def test_delete_automation(hass, hass_client): resp = await client.delete("/api/config/automation/config/sun") await hass.async_block_till_done() - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} diff --git a/tests/components/config/test_config_entries.py b/tests/components/config/test_config_entries.py index 0e1b471cbd5..04444e40f5d 100644 --- a/tests/components/config/test_config_entries.py +++ b/tests/components/config/test_config_entries.py @@ -1,6 +1,7 @@ """Test config entries API.""" from collections import OrderedDict +from http import HTTPStatus from unittest.mock import AsyncMock, patch import pytest @@ -75,7 +76,7 @@ async def test_get_entries(hass, client): ).add_to_hass(hass) resp = await client.get("/api/config/config_entries/entry") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() for entry in data: entry.pop("entry_id") @@ -124,7 +125,7 @@ async def test_remove_entry(hass, client): entry = MockConfigEntry(domain="demo", state=core_ce.ConfigEntryState.LOADED) entry.add_to_hass(hass) resp = await client.delete(f"/api/config/config_entries/entry/{entry.entry_id}") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() assert data == {"require_restart": True} assert len(hass.config_entries.async_entries()) == 0 @@ -137,7 +138,7 @@ async def test_reload_entry(hass, client): resp = await client.post( f"/api/config/config_entries/entry/{entry.entry_id}/reload" ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() assert data == {"require_restart": True} assert len(hass.config_entries.async_entries()) == 1 @@ -146,7 +147,7 @@ async def test_reload_entry(hass, client): async def test_reload_invalid_entry(hass, client): """Test reloading an invalid entry via the API.""" resp = await client.post("/api/config/config_entries/entry/invalid/reload") - assert resp.status == 404 + assert resp.status == HTTPStatus.NOT_FOUND async def test_remove_entry_unauth(hass, client, hass_admin_user): @@ -155,7 +156,7 @@ async def test_remove_entry_unauth(hass, client, hass_admin_user): entry = MockConfigEntry(domain="demo", state=core_ce.ConfigEntryState.LOADED) entry.add_to_hass(hass) resp = await client.delete(f"/api/config/config_entries/entry/{entry.entry_id}") - assert resp.status == 401 + assert resp.status == HTTPStatus.UNAUTHORIZED assert len(hass.config_entries.async_entries()) == 1 @@ -167,7 +168,7 @@ async def test_reload_entry_unauth(hass, client, hass_admin_user): resp = await client.post( f"/api/config/config_entries/entry/{entry.entry_id}/reload" ) - assert resp.status == 401 + assert resp.status == HTTPStatus.UNAUTHORIZED assert len(hass.config_entries.async_entries()) == 1 @@ -178,7 +179,7 @@ async def test_reload_entry_in_failed_state(hass, client, hass_admin_user): resp = await client.post( f"/api/config/config_entries/entry/{entry.entry_id}/reload" ) - assert resp.status == 403 + assert resp.status == HTTPStatus.FORBIDDEN assert len(hass.config_entries.async_entries()) == 1 @@ -186,7 +187,7 @@ async def test_available_flows(hass, client): """Test querying the available flows.""" with patch.object(config_flows, "FLOWS", ["hello", "world"]): resp = await client.get("/api/config/config_entries/flow_handlers") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() assert set(data) == {"hello", "world"} @@ -222,7 +223,7 @@ async def test_initialize_flow(hass, client): json={"handler": "test", "show_advanced_options": True}, ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() data.pop("flow_id") @@ -266,7 +267,7 @@ async def test_initialize_flow_unauth(hass, client, hass_admin_user): "/api/config/config_entries/flow", json={"handler": "test"} ) - assert resp.status == 401 + assert resp.status == HTTPStatus.UNAUTHORIZED async def test_abort(hass, client): @@ -282,7 +283,7 @@ async def test_abort(hass, client): "/api/config/config_entries/flow", json={"handler": "test"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() data.pop("flow_id") assert data == { @@ -314,7 +315,7 @@ async def test_create_account(hass, client, enable_custom_integrations): "/api/config/config_entries/flow", json={"handler": "test"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK entries = hass.config_entries.async_entries("test") assert len(entries) == 1 @@ -369,7 +370,7 @@ async def test_two_step_flow(hass, client, enable_custom_integrations): resp = await client.post( "/api/config/config_entries/flow", json={"handler": "test"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() flow_id = data.pop("flow_id") assert data == { @@ -387,7 +388,7 @@ async def test_two_step_flow(hass, client, enable_custom_integrations): f"/api/config/config_entries/flow/{flow_id}", json={"user_title": "user-title"}, ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK entries = hass.config_entries.async_entries("test") assert len(entries) == 1 @@ -442,7 +443,7 @@ async def test_continue_flow_unauth(hass, client, hass_admin_user): resp = await client.post( "/api/config/config_entries/flow", json={"handler": "test"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() flow_id = data.pop("flow_id") assert data == { @@ -461,7 +462,7 @@ async def test_continue_flow_unauth(hass, client, hass_admin_user): f"/api/config/config_entries/flow/{flow_id}", json={"user_title": "user-title"}, ) - assert resp.status == 401 + assert resp.status == HTTPStatus.UNAUTHORIZED async def test_get_progress_index(hass, hass_ws_client): @@ -532,14 +533,14 @@ async def test_get_progress_flow(hass, client): "/api/config/config_entries/flow", json={"handler": "test"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() resp2 = await client.get( "/api/config/config_entries/flow/{}".format(data["flow_id"]) ) - assert resp2.status == 200 + assert resp2.status == HTTPStatus.OK data2 = await resp2.json() assert data == data2 @@ -566,7 +567,7 @@ async def test_get_progress_flow_unauth(hass, client, hass_admin_user): "/api/config/config_entries/flow", json={"handler": "test"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() hass_admin_user.groups = [] @@ -575,7 +576,7 @@ async def test_get_progress_flow_unauth(hass, client, hass_admin_user): "/api/config/config_entries/flow/{}".format(data["flow_id"]) ) - assert resp2.status == 401 + assert resp2.status == HTTPStatus.UNAUTHORIZED async def test_options_flow(hass, client): @@ -608,7 +609,7 @@ async def test_options_flow(hass, client): url = "/api/config/config_entries/options/flow" resp = await client.post(url, json={"handler": entry.entry_id}) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() data.pop("flow_id") @@ -657,7 +658,7 @@ async def test_two_step_options_flow(hass, client): url = "/api/config/config_entries/options/flow" resp = await client.post(url, json={"handler": entry.entry_id}) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() flow_id = data.pop("flow_id") assert data == { @@ -675,7 +676,7 @@ async def test_two_step_options_flow(hass, client): f"/api/config/config_entries/options/flow/{flow_id}", json={"enabled": True}, ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() data.pop("flow_id") assert data == { diff --git a/tests/components/config/test_core.py b/tests/components/config/test_core.py index 9c86a3f2d1b..b78ed50cdf2 100644 --- a/tests/components/config/test_core.py +++ b/tests/components/config/test_core.py @@ -1,4 +1,5 @@ """Test core config.""" +from http import HTTPStatus from unittest.mock import patch import pytest @@ -33,7 +34,7 @@ async def test_validate_config_ok(hass, hass_client): ): resp = await client.post("/api/config/core/check_config") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result["result"] == "valid" assert result["errors"] is None @@ -44,7 +45,7 @@ async def test_validate_config_ok(hass, hass_client): ): resp = await client.post("/api/config/core/check_config") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result["result"] == "invalid" assert result["errors"] == "beer" diff --git a/tests/components/config/test_customize.py b/tests/components/config/test_customize.py index aac18bc379e..d5b4c788bcf 100644 --- a/tests/components/config/test_customize.py +++ b/tests/components/config/test_customize.py @@ -1,4 +1,5 @@ """Test Customize config panel.""" +from http import HTTPStatus import json from unittest.mock import patch @@ -22,7 +23,7 @@ async def test_get_entity(hass, hass_client): with patch("homeassistant.components.config._read", mock_read): resp = await client.get("/api/config/customize/config/hello.beer") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"local": {"free": "beer"}, "global": {"cold": "beer"}} @@ -65,7 +66,7 @@ async def test_update_entity(hass, hass_client): ) await hass.async_block_till_done() - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -94,7 +95,7 @@ async def test_update_entity_invalid_key(hass, hass_client): "/api/config/customize/config/not_entity", data=json.dumps({"name": "YO"}) ) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST async def test_update_entity_invalid_json(hass, hass_client): @@ -106,4 +107,4 @@ async def test_update_entity_invalid_json(hass, hass_client): resp = await client.post("/api/config/customize/config/hello.beer", data="not json") - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST diff --git a/tests/components/config/test_group.py b/tests/components/config/test_group.py index c4b7cf25800..72a9a00cbea 100644 --- a/tests/components/config/test_group.py +++ b/tests/components/config/test_group.py @@ -1,4 +1,5 @@ """Test Group config panel.""" +from http import HTTPStatus import json from unittest.mock import AsyncMock, patch @@ -22,7 +23,7 @@ async def test_get_device_config(hass, hass_client): with patch("homeassistant.components.config._read", mock_read): resp = await client.get("/api/config/group/config/hello.beer") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"free": "beer"} @@ -63,7 +64,7 @@ async def test_update_device_config(hass, hass_client): ) await hass.async_block_till_done() - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -85,7 +86,7 @@ async def test_update_device_config_invalid_key(hass, hass_client): "/api/config/group/config/not a slug", data=json.dumps({"name": "YO"}) ) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST async def test_update_device_config_invalid_data(hass, hass_client): @@ -99,7 +100,7 @@ async def test_update_device_config_invalid_data(hass, hass_client): "/api/config/group/config/hello_beer", data=json.dumps({"invalid_option": 2}) ) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST async def test_update_device_config_invalid_json(hass, hass_client): @@ -111,4 +112,4 @@ async def test_update_device_config_invalid_json(hass, hass_client): resp = await client.post("/api/config/group/config/hello_beer", data="not json") - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST diff --git a/tests/components/config/test_scene.py b/tests/components/config/test_scene.py index 429fb807883..db938638d01 100644 --- a/tests/components/config/test_scene.py +++ b/tests/components/config/test_scene.py @@ -1,4 +1,5 @@ """Test Automation config panel.""" +from http import HTTPStatus import json from unittest.mock import patch @@ -40,7 +41,7 @@ async def test_create_scene(hass, hass_client): ), ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -91,7 +92,7 @@ async def test_update_scene(hass, hass_client): ), ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -148,7 +149,7 @@ async def test_bad_formatted_scene(hass, hass_client): ), ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -202,7 +203,7 @@ async def test_delete_scene(hass, hass_client): resp = await client.delete("/api/config/scene/config/light_on") await hass.async_block_till_done() - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} diff --git a/tests/components/config/test_script.py b/tests/components/config/test_script.py index 0026729766c..18ab87b8c40 100644 --- a/tests/components/config/test_script.py +++ b/tests/components/config/test_script.py @@ -1,4 +1,5 @@ """Tests for config/script.""" +from http import HTTPStatus from unittest.mock import patch from homeassistant.bootstrap import async_setup_component @@ -29,7 +30,7 @@ async def test_delete_script(hass, hass_client): ): resp = await client.delete("/api/config/script/config/two") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} diff --git a/tests/components/config/test_zwave.py b/tests/components/config/test_zwave.py index 06dd3434738..bc7f22c104f 100644 --- a/tests/components/config/test_zwave.py +++ b/tests/components/config/test_zwave.py @@ -1,4 +1,5 @@ """Test Z-Wave config panel.""" +from http import HTTPStatus import json from unittest.mock import MagicMock, patch @@ -7,7 +8,6 @@ import pytest from homeassistant.bootstrap import async_setup_component from homeassistant.components import config from homeassistant.components.zwave import DATA_NETWORK, const -from homeassistant.const import HTTP_NOT_FOUND from tests.mock.zwave import MockEntityValues, MockNode, MockValue @@ -33,7 +33,7 @@ async def test_get_device_config(client): with patch("homeassistant.components.config._read", mock_read): resp = await client.get("/api/config/zwave/device_config/hello.beer") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"free": "beer"} @@ -64,7 +64,7 @@ async def test_update_device_config(client): data=json.dumps({"polling_intensity": 2}), ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"result": "ok"} @@ -80,7 +80,7 @@ async def test_update_device_config_invalid_key(client): data=json.dumps({"polling_intensity": 2}), ) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST async def test_update_device_config_invalid_data(client): @@ -90,7 +90,7 @@ async def test_update_device_config_invalid_data(client): data=json.dumps({"invalid_option": 2}), ) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST async def test_update_device_config_invalid_json(client): @@ -99,7 +99,7 @@ async def test_update_device_config_invalid_json(client): "/api/config/zwave/device_config/hello.beer", data="not json" ) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST async def test_get_values(hass, client): @@ -121,7 +121,7 @@ async def test_get_values(hass, client): resp = await client.get("/api/zwave/values/1") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == { @@ -147,7 +147,7 @@ async def test_get_groups(hass, client): resp = await client.get("/api/zwave/groups/2") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == { @@ -169,7 +169,7 @@ async def test_get_groups_nogroups(hass, client): resp = await client.get("/api/zwave/groups/2") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {} @@ -182,7 +182,7 @@ async def test_get_groups_nonode(hass, client): resp = await client.get("/api/zwave/groups/2") - assert resp.status == HTTP_NOT_FOUND + assert resp.status == HTTPStatus.NOT_FOUND result = await resp.json() assert result == {"message": "Node not found"} @@ -206,7 +206,7 @@ async def test_get_config(hass, client): resp = await client.get("/api/zwave/config/2") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == { @@ -232,7 +232,7 @@ async def test_get_config_noconfig_node(hass, client): resp = await client.get("/api/zwave/config/2") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {} @@ -245,7 +245,7 @@ async def test_get_config_nonode(hass, client): resp = await client.get("/api/zwave/config/2") - assert resp.status == HTTP_NOT_FOUND + assert resp.status == HTTPStatus.NOT_FOUND result = await resp.json() assert result == {"message": "Node not found"} @@ -258,7 +258,7 @@ async def test_get_usercodes_nonode(hass, client): resp = await client.get("/api/zwave/usercodes/2") - assert resp.status == HTTP_NOT_FOUND + assert resp.status == HTTPStatus.NOT_FOUND result = await resp.json() assert result == {"message": "Node not found"} @@ -278,7 +278,7 @@ async def test_get_usercodes(hass, client): resp = await client.get("/api/zwave/usercodes/18") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {"0": {"code": "1234", "label": "label", "length": 4}} @@ -294,7 +294,7 @@ async def test_get_usercode_nousercode_node(hass, client): resp = await client.get("/api/zwave/usercodes/18") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {} @@ -314,7 +314,7 @@ async def test_get_usercodes_no_genreuser(hass, client): resp = await client.get("/api/zwave/usercodes/18") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert result == {} @@ -324,7 +324,7 @@ async def test_save_config_no_network(hass, client): """Test saving configuration without network data.""" resp = await client.post("/api/zwave/saveconfig") - assert resp.status == HTTP_NOT_FOUND + assert resp.status == HTTPStatus.NOT_FOUND result = await resp.json() assert result == {"message": "No Z-Wave network data found"} @@ -335,7 +335,7 @@ async def test_save_config(hass, client): resp = await client.post("/api/zwave/saveconfig") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert network.write_config.called assert result == {"message": "Z-Wave configuration saved to file"} @@ -367,7 +367,7 @@ async def test_get_protection_values(hass, client): resp = await client.get("/api/zwave/protection/18") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert node.get_protections.called assert node.get_protection_item.called @@ -401,7 +401,7 @@ async def test_get_protection_values_nonexisting_node(hass, client): resp = await client.get("/api/zwave/protection/18") - assert resp.status == HTTP_NOT_FOUND + assert resp.status == HTTPStatus.NOT_FOUND result = await resp.json() assert not node.get_protections.called assert not node.get_protection_item.called @@ -419,7 +419,7 @@ async def test_get_protection_values_without_protectionclass(hass, client): resp = await client.get("/api/zwave/protection/18") - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert not node.get_protections.called assert not node.get_protection_item.called @@ -452,7 +452,7 @@ async def test_set_protection_value(hass, client): data=json.dumps({"value_id": "123456", "selection": "Protection by Sequence"}), ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK result = await resp.json() assert node.set_protection.called assert result == {"message": "Protection setting successfully set"} @@ -484,7 +484,7 @@ async def test_set_protection_value_failed(hass, client): data=json.dumps({"value_id": "123456", "selection": "Protecton by Sequence"}), ) - assert resp.status == 202 + assert resp.status == HTTPStatus.ACCEPTED result = await resp.json() assert node.set_protection.called assert result == {"message": "Protection setting did not complete"} @@ -516,7 +516,7 @@ async def test_set_protection_value_nonexisting_node(hass, client): data=json.dumps({"value_id": "123456", "selection": "Protecton by Sequence"}), ) - assert resp.status == HTTP_NOT_FOUND + assert resp.status == HTTPStatus.NOT_FOUND result = await resp.json() assert not node.set_protection.called assert result == {"message": "Node not found"} @@ -536,7 +536,7 @@ async def test_set_protection_value_missing_class(hass, client): data=json.dumps({"value_id": "123456", "selection": "Protecton by Sequence"}), ) - assert resp.status == HTTP_NOT_FOUND + assert resp.status == HTTPStatus.NOT_FOUND result = await resp.json() assert not node.set_protection.called assert result == {"message": "No protection commandclass on this node"} diff --git a/tests/components/conversation/test_init.py b/tests/components/conversation/test_init.py index 737d99cbddd..cbaa3278e9c 100644 --- a/tests/components/conversation/test_init.py +++ b/tests/components/conversation/test_init.py @@ -1,4 +1,6 @@ """The tests for the Conversation component.""" +from http import HTTPStatus + import pytest from homeassistant.components import conversation @@ -116,7 +118,7 @@ async def test_http_processing_intent(hass, hass_client, hass_admin_user): "/api/conversation/process", json={"text": "I would like the Grolsch beer"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK data = await resp.json() assert data == { @@ -212,7 +214,7 @@ async def test_http_api(hass, hass_client): resp = await client.post( "/api/conversation/process", json={"text": "Turn the kitchen on"} ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK assert len(calls) == 1 call = calls[0] @@ -232,10 +234,10 @@ async def test_http_api_wrong_data(hass, hass_client): client = await hass_client() resp = await client.post("/api/conversation/process", json={"text": 123}) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST resp = await client.post("/api/conversation/process", json={}) - assert resp.status == 400 + assert resp.status == HTTPStatus.BAD_REQUEST async def test_custom_agent(hass, hass_client, hass_admin_user): @@ -263,7 +265,7 @@ async def test_custom_agent(hass, hass_client, hass_admin_user): "/api/conversation/process", json={"text": "Test Text", "conversation_id": "test-conv-id"}, ) - assert resp.status == 200 + assert resp.status == HTTPStatus.OK assert await resp.json() == { "card": {}, "speech": {"plain": {"extra_data": None, "speech": "Test response"}},