Add type hints to requests_mock (#87757)

This commit is contained in:
epenet 2023-02-10 11:44:09 +01:00 committed by GitHub
parent fac746c974
commit 22bfb99db4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 8 deletions

View File

@ -112,6 +112,7 @@ _TEST_FIXTURES: dict[str, list[str] | str] = {
"mqtt_mock_entry_with_yaml_config": "MqttMockHAClientGenerator", "mqtt_mock_entry_with_yaml_config": "MqttMockHAClientGenerator",
"recorder_db_url": "str", "recorder_db_url": "str",
"recorder_mock": "Recorder", "recorder_mock": "Recorder",
"requests_mock": "requests_mock.Mocker",
} }
_TEST_FUNCTION_MATCH = TypeHintMatch( _TEST_FUNCTION_MATCH = TypeHintMatch(
function_name="test_*", function_name="test_*",

View File

@ -5,6 +5,7 @@ from unittest.mock import patch
import forecastio import forecastio
from requests.exceptions import ConnectionError as ConnectError from requests.exceptions import ConnectionError as ConnectError
import requests_mock
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component 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.""" """Test the platform setup with configuration."""
with patch("homeassistant.components.darksky.sensor.forecastio.load_forecast"): with patch("homeassistant.components.darksky.sensor.forecastio.load_forecast"):
assert await async_setup_component(hass, "sensor", VALID_CONFIG_MINIMAL) 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 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.""" """Test for handling a bad API key."""
# The Dark Sky API wrapper that we use raises an HTTP error # The Dark Sky API wrapper that we use raises an HTTP error
# when you try to use a bad (or no) API key. # 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 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.""" """Test for successfully setting up the forecast.io platform."""
with patch( with patch(
"forecastio.api.get_forecast", wraps=forecastio.api.get_forecast "forecastio.api.get_forecast", wraps=forecastio.api.get_forecast

View File

@ -4,6 +4,7 @@ from unittest.mock import patch
import forecastio import forecastio
from requests.exceptions import ConnectionError as ConnectError from requests.exceptions import ConnectionError as ConnectError
import requests_mock
from homeassistant.components import weather from homeassistant.components import weather
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@ -12,7 +13,7 @@ from homeassistant.setup import async_setup_component
from tests.common import load_fixture 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.""" """Test for successfully setting up the forecast.io platform."""
with patch( with patch(
"forecastio.api.get_forecast", wraps=forecastio.api.get_forecast "forecastio.api.get_forecast", wraps=forecastio.api.get_forecast

View File

@ -28,7 +28,7 @@ import freezegun
import multidict import multidict
import pytest import pytest
import pytest_socket import pytest_socket
import requests_mock as _requests_mock import requests_mock
from homeassistant import core as ha, loader, runner, util from homeassistant import core as ha, loader, runner, util
from homeassistant.auth.const import GROUP_ID_ADMIN, GROUP_ID_READ_ONLY 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() await event_loop.shutdown_default_executor()
@pytest.fixture @pytest.fixture(name="requests_mock")
def requests_mock(): def requests_mock_fixture() -> Generator[requests_mock.Mocker, None, None]:
"""Fixture to provide a requests mocker.""" """Fixture to provide a requests mocker."""
with _requests_mock.mock() as m: with requests_mock.mock() as m:
yield m yield m