diff --git a/pyproject.toml b/pyproject.toml index 9ea03a63ff8..66c82d2e770 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -644,6 +644,7 @@ select = [ "RSE", # flake8-raise "RUF005", # Consider iterable unpacking instead of concatenation "RUF006", # Store a reference to the return value of asyncio.create_task + "RUF013", # PEP 484 prohibits implicit Optional # "RUF100", # Unused `noqa` directive; temporarily every now and then to clean them up "S102", # Use of exec detected "S103", # bad-file-permissions diff --git a/tests/components/application_credentials/test_init.py b/tests/components/application_credentials/test_init.py index af118c82279..523abc7fd84 100644 --- a/tests/components/application_credentials/test_init.py +++ b/tests/components/application_credentials/test_init.py @@ -189,7 +189,9 @@ class Client: self.client = client self.id = 0 - async def cmd(self, cmd: str, payload: dict[str, Any] = None) -> dict[str, Any]: + async def cmd( + self, cmd: str, payload: dict[str, Any] | None = None + ) -> dict[str, Any]: """Send a command and receive the json result.""" self.id += 1 await self.client.send_json( @@ -203,7 +205,7 @@ class Client: assert resp.get("id") == self.id return resp - async def cmd_result(self, cmd: str, payload: dict[str, Any] = None) -> Any: + async def cmd_result(self, cmd: str, payload: dict[str, Any] | None = None) -> Any: """Send a command and parse the result.""" resp = await self.cmd(cmd, payload) assert resp.get("success") diff --git a/tests/components/bmw_connected_drive/__init__.py b/tests/components/bmw_connected_drive/__init__.py index 84384e6b482..e737fce6897 100644 --- a/tests/components/bmw_connected_drive/__init__.py +++ b/tests/components/bmw_connected_drive/__init__.py @@ -54,9 +54,9 @@ async def setup_mocked_integration(hass: HomeAssistant) -> MockConfigEntry: def check_remote_service_call( router: respx.MockRouter, - remote_service: str = None, - remote_service_params: dict = None, - remote_service_payload: dict = None, + remote_service: str | None = None, + remote_service_params: dict | None = None, + remote_service_payload: dict | None = None, ): """Check if the last call was a successful remote service call.""" diff --git a/tests/components/bond/common.py b/tests/components/bond/common.py index 619aa03572a..0aff18e6ed1 100644 --- a/tests/components/bond/common.py +++ b/tests/components/bond/common.py @@ -83,11 +83,11 @@ async def setup_platform( discovered_device: dict[str, Any], *, bond_device_id: str = "bond-device-id", - bond_version: dict[str, Any] = None, - props: dict[str, Any] = None, - state: dict[str, Any] = None, - bridge: dict[str, Any] = None, - token: dict[str, Any] = None, + bond_version: dict[str, Any] | None = None, + props: dict[str, Any] | None = None, + state: dict[str, Any] | None = None, + bridge: dict[str, Any] | None = None, + token: dict[str, Any] | None = None, ): """Set up the specified Bond platform.""" mock_entry = MockConfigEntry( diff --git a/tests/components/command_line/__init__.py b/tests/components/command_line/__init__.py index 736ca68b43d..dc965234506 100644 --- a/tests/components/command_line/__init__.py +++ b/tests/components/command_line/__init__.py @@ -7,7 +7,7 @@ from unittest.mock import MagicMock, patch @contextmanager def mock_asyncio_subprocess_run( - response: bytes = b"", returncode: int = 0, exception: Exception = None + response: bytes = b"", returncode: int = 0, exception: Exception | None = None ): """Mock create_subprocess_shell.""" diff --git a/tests/components/device_tracker/common.py b/tests/components/device_tracker/common.py index eb88f9dfefc..a17556cfbaa 100644 --- a/tests/components/device_tracker/common.py +++ b/tests/components/device_tracker/common.py @@ -30,14 +30,14 @@ from tests.common import MockPlatform, mock_platform @bind_hass def async_see( hass: HomeAssistant, - mac: str = None, - dev_id: str = None, - host_name: str = None, - location_name: str = None, - gps: GPSType = None, + mac: str | None = None, + dev_id: str | None = None, + host_name: str | None = None, + location_name: str | None = None, + gps: GPSType | None = None, gps_accuracy=None, - battery: int = None, - attributes: dict = None, + battery: int | None = None, + attributes: dict | None = None, ): """Call service to notify you see device.""" data = { diff --git a/tests/components/discord/conftest.py b/tests/components/discord/conftest.py index 128869d0b80..c9c4e7c17d5 100644 --- a/tests/components/discord/conftest.py +++ b/tests/components/discord/conftest.py @@ -29,7 +29,7 @@ def discord_aiohttp_mock_factory( """Create Discord service mock from factory.""" def _discord_aiohttp_mock_factory( - headers: dict[str, str] = None, + headers: dict[str, str] | None = None, ) -> AiohttpClientMocker: if headers is not None: aioclient_mock.get( diff --git a/tests/components/fan/common.py b/tests/components/fan/common.py index a48e66c08f4..fbc7c7bb1bb 100644 --- a/tests/components/fan/common.py +++ b/tests/components/fan/common.py @@ -32,8 +32,8 @@ from tests.common import MockEntity async def async_turn_on( hass, entity_id=ENTITY_MATCH_ALL, - percentage: int = None, - preset_mode: str = None, + percentage: int | None = None, + preset_mode: str | None = None, ) -> None: """Turn all or specified fan on.""" data = { @@ -76,7 +76,7 @@ async def async_oscillate( async def async_set_preset_mode( - hass, entity_id=ENTITY_MATCH_ALL, preset_mode: str = None + hass, entity_id=ENTITY_MATCH_ALL, preset_mode: str | None = None ) -> None: """Set preset mode for all or specified fan.""" data = { @@ -90,7 +90,7 @@ async def async_set_preset_mode( async def async_set_percentage( - hass, entity_id=ENTITY_MATCH_ALL, percentage: int = None + hass, entity_id=ENTITY_MATCH_ALL, percentage: int | None = None ) -> None: """Set percentage for all or specified fan.""" data = { @@ -104,7 +104,7 @@ async def async_set_percentage( async def async_increase_speed( - hass, entity_id=ENTITY_MATCH_ALL, percentage_step: int = None + hass, entity_id=ENTITY_MATCH_ALL, percentage_step: int | None = None ) -> None: """Increase speed for all or specified fan.""" data = { @@ -121,7 +121,7 @@ async def async_increase_speed( async def async_decrease_speed( - hass, entity_id=ENTITY_MATCH_ALL, percentage_step: int = None + hass, entity_id=ENTITY_MATCH_ALL, percentage_step: int | None = None ) -> None: """Decrease speed for all or specified fan.""" data = { @@ -138,7 +138,7 @@ async def async_decrease_speed( async def async_set_direction( - hass, entity_id=ENTITY_MATCH_ALL, direction: str = None + hass, entity_id=ENTITY_MATCH_ALL, direction: str | None = None ) -> None: """Set direction for all or specified fan.""" data = { diff --git a/tests/components/fritzbox/__init__.py b/tests/components/fritzbox/__init__.py index 8d366e39f6d..5fb9c853bf5 100644 --- a/tests/components/fritzbox/__init__.py +++ b/tests/components/fritzbox/__init__.py @@ -23,9 +23,9 @@ async def setup_config_entry( hass: HomeAssistant, data: dict[str, Any], unique_id: str = "any", - device: Mock = None, - fritz: Mock = None, - template: Mock = None, + device: Mock | None = None, + fritz: Mock | None = None, + template: Mock | None = None, ) -> bool: """Do setup of a MockConfigEntry.""" entry = MockConfigEntry( diff --git a/tests/components/google/conftest.py b/tests/components/google/conftest.py index 37a652e3752..bd64a1d8a49 100644 --- a/tests/components/google/conftest.py +++ b/tests/components/google/conftest.py @@ -241,7 +241,7 @@ def mock_events_list( def _put_result( response: dict[str, Any], - calendar_id: str = None, + calendar_id: str | None = None, exc: ClientError | None = None, ) -> None: if calendar_id is None: diff --git a/tests/components/google/test_calendar.py b/tests/components/google/test_calendar.py index 3946e432497..cf138567ba9 100644 --- a/tests/components/google/test_calendar.py +++ b/tests/components/google/test_calendar.py @@ -79,7 +79,9 @@ class Client: self.client = client self.id = 0 - async def cmd(self, cmd: str, payload: dict[str, Any] = None) -> dict[str, Any]: + async def cmd( + self, cmd: str, payload: dict[str, Any] | None = None + ) -> dict[str, Any]: """Send a command and receive the json result.""" self.id += 1 await self.client.send_json( @@ -93,7 +95,7 @@ class Client: assert resp.get("id") == self.id return resp - async def cmd_result(self, cmd: str, payload: dict[str, Any] = None) -> Any: + async def cmd_result(self, cmd: str, payload: dict[str, Any] | None = None) -> Any: """Send a command and parse the result.""" resp = await self.cmd(cmd, payload) assert resp.get("success") diff --git a/tests/components/mqtt/test_humidifier.py b/tests/components/mqtt/test_humidifier.py index 75baca046bd..c29250bff82 100644 --- a/tests/components/mqtt/test_humidifier.py +++ b/tests/components/mqtt/test_humidifier.py @@ -101,7 +101,7 @@ async def async_turn_off(hass: HomeAssistant, entity_id=ENTITY_MATCH_ALL) -> Non async def async_set_mode( - hass: HomeAssistant, entity_id=ENTITY_MATCH_ALL, mode: str = None + hass: HomeAssistant, entity_id=ENTITY_MATCH_ALL, mode: str | None = None ) -> None: """Set mode for all or specified humidifier.""" data = { @@ -114,7 +114,7 @@ async def async_set_mode( async def async_set_humidity( - hass: HomeAssistant, entity_id=ENTITY_MATCH_ALL, humidity: int = None + hass: HomeAssistant, entity_id=ENTITY_MATCH_ALL, humidity: int | None = None ) -> None: """Set target humidity for all or specified humidifier.""" data = { diff --git a/tests/components/nest/common.py b/tests/components/nest/common.py index e2cd536725f..70bc88b003f 100644 --- a/tests/components/nest/common.py +++ b/tests/components/nest/common.py @@ -148,7 +148,9 @@ class CreateDevice: self.data = {"traits": {}} def create( - self, raw_traits: dict[str, Any] = None, raw_data: dict[str, Any] = None + self, + raw_traits: dict[str, Any] | None = None, + raw_data: dict[str, Any] | None = None, ) -> None: """Create a new device with the specifeid traits.""" data = copy.deepcopy(self.data) diff --git a/tests/components/nest/test_camera.py b/tests/components/nest/test_camera.py index b68173be201..33c611c9cfc 100644 --- a/tests/components/nest/test_camera.py +++ b/tests/components/nest/test_camera.py @@ -104,7 +104,7 @@ def webrtc_camera_device(create_device: CreateDevice) -> None: def make_motion_event( event_id: str = MOTION_EVENT_ID, event_session_id: str = EVENT_SESSION_ID, - timestamp: datetime.datetime = None, + timestamp: datetime.datetime | None = None, ) -> EventMessage: """Create an EventMessage for a motion event.""" if not timestamp: @@ -128,7 +128,7 @@ def make_motion_event( def make_stream_url_response( - expiration: datetime.datetime = None, token_num: int = 0 + expiration: datetime.datetime | None = None, token_num: int = 0 ) -> aiohttp.web.Response: """Make response for the API that generates a streaming url.""" if not expiration: diff --git a/tests/components/nest/test_config_flow.py b/tests/components/nest/test_config_flow.py index b7ca64db232..cef1f5e9a86 100644 --- a/tests/components/nest/test_config_flow.py +++ b/tests/components/nest/test_config_flow.py @@ -152,7 +152,7 @@ class OAuthFixture: ) async def async_finish_setup( - self, result: dict, user_input: dict = None + self, result: dict, user_input: dict | None = None ) -> ConfigEntry: """Finish the OAuth flow exchanging auth token for refresh token.""" with patch( diff --git a/tests/components/nut/util.py b/tests/components/nut/util.py index 3bc48764816..b6c9cffd390 100644 --- a/tests/components/nut/util.py +++ b/tests/components/nut/util.py @@ -33,14 +33,14 @@ def _get_mock_nutclient( async def async_init_integration( hass: HomeAssistant, - ups_fixture: str = None, + ups_fixture: str | None = None, username: str = "mock", password: str = "mock", - list_ups: dict[str, str] = None, - list_vars: dict[str, str] = None, - list_commands_return_value: dict[str, str] = None, + list_ups: dict[str, str] | None = None, + list_vars: dict[str, str] | None = None, + list_commands_return_value: dict[str, str] | None = None, list_commands_side_effect=None, - run_command: MagicMock = None, + run_command: MagicMock | None = None, ) -> MockConfigEntry: """Set up the nut integration in Home Assistant.""" diff --git a/tests/components/radarr/__init__.py b/tests/components/radarr/__init__.py index 0e6f708d329..a29b928b405 100644 --- a/tests/components/radarr/__init__.py +++ b/tests/components/radarr/__init__.py @@ -160,7 +160,7 @@ async def setup_integration( aioclient_mock: AiohttpClientMocker, url: str = URL, api_key: str = API_KEY, - unique_id: str = None, + unique_id: str | None = None, skip_entry_setup: bool = False, connection_error: bool = False, invalid_auth: bool = False, diff --git a/tests/components/recorder/common.py b/tests/components/recorder/common.py index e8fd6dbcf53..7a57b226d77 100644 --- a/tests/components/recorder/common.py +++ b/tests/components/recorder/common.py @@ -109,7 +109,7 @@ async def async_wait_recording_done(hass: HomeAssistant) -> None: await hass.async_block_till_done() -async def async_wait_purge_done(hass: HomeAssistant, max: int = None) -> None: +async def async_wait_purge_done(hass: HomeAssistant, max: int | None = None) -> None: """Wait for max number of purge events. Because a purge may insert another PurgeTask into diff --git a/tests/components/ruckus_unleashed/__init__.py b/tests/components/ruckus_unleashed/__init__.py index 97b554b1eb5..cf510b87314 100644 --- a/tests/components/ruckus_unleashed/__init__.py +++ b/tests/components/ruckus_unleashed/__init__.py @@ -111,7 +111,7 @@ class RuckusAjaxApiPatchContext: def __init__( self, - login_mock: AsyncMock = None, + login_mock: AsyncMock | None = None, system_info: dict | None = None, mesh_info: dict | None = None, active_clients: list[dict] | AsyncMock | None = None, diff --git a/tests/components/screenlogic/__init__.py b/tests/components/screenlogic/__init__.py index c9889e6b4b8..e562b84ad14 100644 --- a/tests/components/screenlogic/__init__.py +++ b/tests/components/screenlogic/__init__.py @@ -61,7 +61,7 @@ async def stub_async_connect( gtype=None, gsubtype=None, name=MOCK_ADAPTER_NAME, - connection_closed_callback: Callable = None, + connection_closed_callback: Callable | None = None, ) -> bool: """Initialize minimum attributes needed for tests.""" self._ip = ip diff --git a/tests/components/signal_messenger/conftest.py b/tests/components/signal_messenger/conftest.py index ecafff1ef4a..1c9c60c2878 100644 --- a/tests/components/signal_messenger/conftest.py +++ b/tests/components/signal_messenger/conftest.py @@ -32,7 +32,7 @@ def signal_requests_mock_factory(requests_mock: Mocker) -> Mocker: """Create signal service mock from factory.""" def _signal_requests_mock_factory( - success_send_result: bool = True, content_length_header: str = None + success_send_result: bool = True, content_length_header: str | None = None ) -> Mocker: requests_mock.register_uri( "GET", diff --git a/tests/components/smartthings/conftest.py b/tests/components/smartthings/conftest.py index f15ba85c07e..b6d34b9d98a 100644 --- a/tests/components/smartthings/conftest.py +++ b/tests/components/smartthings/conftest.py @@ -253,7 +253,7 @@ def device_factory_fixture(): api = Mock(Api) api.post_device_command.return_value = {"results": [{"status": "ACCEPTED"}]} - def _factory(label, capabilities, status: dict = None): + def _factory(label, capabilities, status: dict | None = None): device_data = { "deviceId": str(uuid4()), "name": "Device Type Handler Name", diff --git a/tests/components/sql/__init__.py b/tests/components/sql/__init__.py index fc122ad1a95..5f91cba1d94 100644 --- a/tests/components/sql/__init__.py +++ b/tests/components/sql/__init__.py @@ -262,7 +262,7 @@ YAML_CONFIG_ALL_TEMPLATES = { async def init_integration( hass: HomeAssistant, - config: dict[str, Any] = None, + config: dict[str, Any] | None = None, entry_id: str = "1", source: str = SOURCE_USER, ) -> MockConfigEntry: diff --git a/tests/components/tautulli/__init__.py b/tests/components/tautulli/__init__.py index b48488c7216..8ca0b13d198 100644 --- a/tests/components/tautulli/__init__.py +++ b/tests/components/tautulli/__init__.py @@ -72,7 +72,7 @@ async def setup_integration( aioclient_mock: AiohttpClientMocker, url: str = URL, api_key: str = API_KEY, - unique_id: str = None, + unique_id: str | None = None, skip_entry_setup: bool = False, invalid_auth: bool = False, ) -> MockConfigEntry: diff --git a/tests/components/valve/test_init.py b/tests/components/valve/test_init.py index 971e3d04f3e..eee215d2e29 100644 --- a/tests/components/valve/test_init.py +++ b/tests/components/valve/test_init.py @@ -54,7 +54,7 @@ class MockValveEntity(ValveEntity): unique_id: str = "mock_valve", name: str = "Valve", features: ValveEntityFeature = ValveEntityFeature(0), - current_position: int = None, + current_position: int | None = None, device_class: ValveDeviceClass = None, reports_position: bool = True, ) -> None: @@ -104,7 +104,7 @@ class MockBinaryValveEntity(ValveEntity): unique_id: str = "mock_valve_2", name: str = "Valve", features: ValveEntityFeature = ValveEntityFeature(0), - is_closed: bool = None, + is_closed: bool | None = None, ) -> None: """Initialize the valve.""" self._attr_name = name diff --git a/tests/components/vera/common.py b/tests/components/vera/common.py index b6be60927cf..af21bf5d3a3 100644 --- a/tests/components/vera/common.py +++ b/tests/components/vera/common.py @@ -58,8 +58,8 @@ class ControllerConfig(NamedTuple): def new_simple_controller_config( - config: dict = None, - options: dict = None, + config: dict | None = None, + options: dict | None = None, config_source=ConfigSource.CONFIG_FLOW, serial_number="1111", devices: tuple[pv.VeraDevice, ...] = (), diff --git a/tests/components/vera/test_sensor.py b/tests/components/vera/test_sensor.py index ebe8beb4e29..c31845b80af 100644 --- a/tests/components/vera/test_sensor.py +++ b/tests/components/vera/test_sensor.py @@ -20,8 +20,8 @@ async def run_sensor_test( category: int, class_property: str, assert_states: tuple[tuple[Any, Any]], - assert_unit_of_measurement: str = None, - setup_callback: Callable[[pv.VeraController], None] = None, + assert_unit_of_measurement: str | None = None, + setup_callback: Callable[[pv.VeraController], None] | None = None, ) -> None: """Test generic sensor.""" vera_device: pv.VeraSensor = MagicMock(spec=pv.VeraSensor) diff --git a/tests/components/version/common.py b/tests/components/version/common.py index c14ec2c4fbf..cd9469d08a1 100644 --- a/tests/components/version/common.py +++ b/tests/components/version/common.py @@ -43,7 +43,7 @@ async def mock_get_version_update( freezer: FrozenDateTimeFactory, version: str = MOCK_VERSION, data: dict[str, Any] = MOCK_VERSION_DATA, - side_effect: Exception = None, + side_effect: Exception | None = None, ) -> None: """Mock getting version.""" with patch(