From 22bfb99db415a6747e056df80cee3efbe3e5fa68 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Fri, 10 Feb 2023 11:44:09 +0100 Subject: [PATCH] Add type hints to requests_mock (#87757) --- pylint/plugins/hass_enforce_type_hints.py | 1 + tests/components/darksky/test_sensor.py | 11 ++++++++--- tests/components/darksky/test_weather.py | 3 ++- tests/conftest.py | 8 ++++---- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/pylint/plugins/hass_enforce_type_hints.py b/pylint/plugins/hass_enforce_type_hints.py index 27e79c62ccf..e794418e17c 100644 --- a/pylint/plugins/hass_enforce_type_hints.py +++ b/pylint/plugins/hass_enforce_type_hints.py @@ -112,6 +112,7 @@ _TEST_FIXTURES: dict[str, list[str] | str] = { "mqtt_mock_entry_with_yaml_config": "MqttMockHAClientGenerator", "recorder_db_url": "str", "recorder_mock": "Recorder", + "requests_mock": "requests_mock.Mocker", } _TEST_FUNCTION_MATCH = TypeHintMatch( function_name="test_*", diff --git a/tests/components/darksky/test_sensor.py b/tests/components/darksky/test_sensor.py index 2c603d3b1a1..bd6552048e9 100644 --- a/tests/components/darksky/test_sensor.py +++ b/tests/components/darksky/test_sensor.py @@ -5,6 +5,7 @@ from unittest.mock import patch import forecastio from requests.exceptions import ConnectionError as ConnectError +import requests_mock from homeassistant.core import HomeAssistant from homeassistant.setup import async_setup_component @@ -68,7 +69,9 @@ INVALID_CONFIG_LANG = { } -async def test_setup_with_config(hass, requests_mock): +async def test_setup_with_config( + hass: HomeAssistant, requests_mock: requests_mock.Mocker +) -> None: """Test the platform setup with configuration.""" with patch("homeassistant.components.darksky.sensor.forecastio.load_forecast"): assert await async_setup_component(hass, "sensor", VALID_CONFIG_MINIMAL) @@ -106,7 +109,9 @@ async def test_setup_with_invalid_language_config(hass: HomeAssistant) -> None: assert state is None -async def test_setup_bad_api_key(hass, requests_mock): +async def test_setup_bad_api_key( + hass: HomeAssistant, requests_mock: requests_mock.Mocker +) -> None: """Test for handling a bad API key.""" # The Dark Sky API wrapper that we use raises an HTTP error # when you try to use a bad (or no) API key. @@ -137,7 +142,7 @@ async def test_connection_error(hass: HomeAssistant) -> None: assert state is None -async def test_setup(hass, requests_mock): +async def test_setup(hass: HomeAssistant, requests_mock: requests_mock.Mocker) -> None: """Test for successfully setting up the forecast.io platform.""" with patch( "forecastio.api.get_forecast", wraps=forecastio.api.get_forecast diff --git a/tests/components/darksky/test_weather.py b/tests/components/darksky/test_weather.py index b22294d61f6..5b0c67916cd 100644 --- a/tests/components/darksky/test_weather.py +++ b/tests/components/darksky/test_weather.py @@ -4,6 +4,7 @@ from unittest.mock import patch import forecastio from requests.exceptions import ConnectionError as ConnectError +import requests_mock from homeassistant.components import weather from homeassistant.core import HomeAssistant @@ -12,7 +13,7 @@ from homeassistant.setup import async_setup_component from tests.common import load_fixture -async def test_setup(hass, requests_mock): +async def test_setup(hass: HomeAssistant, requests_mock: requests_mock.Mocker) -> None: """Test for successfully setting up the forecast.io platform.""" with patch( "forecastio.api.get_forecast", wraps=forecastio.api.get_forecast diff --git a/tests/conftest.py b/tests/conftest.py index 0d7058f5011..1f87d2ea351 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -28,7 +28,7 @@ import freezegun import multidict import pytest import pytest_socket -import requests_mock as _requests_mock +import requests_mock from homeassistant import core as ha, loader, runner, util from homeassistant.auth.const import GROUP_ID_ADMIN, GROUP_ID_READ_ONLY @@ -490,10 +490,10 @@ async def stop_hass( await event_loop.shutdown_default_executor() -@pytest.fixture -def requests_mock(): +@pytest.fixture(name="requests_mock") +def requests_mock_fixture() -> Generator[requests_mock.Mocker, None, None]: """Fixture to provide a requests mocker.""" - with _requests_mock.mock() as m: + with requests_mock.mock() as m: yield m