Add tmpdir to known fixtures in pylint (#89844)

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

View File

@ -142,6 +142,7 @@ _TEST_FIXTURES: dict[str, list[str] | str] = {
"requests_mock": "requests_mock.Mocker", "requests_mock": "requests_mock.Mocker",
"snapshot": "SnapshotAssertion", "snapshot": "SnapshotAssertion",
"tmp_path": "Path", "tmp_path": "Path",
"tmpdir": "py.path.local",
} }
_TEST_FUNCTION_MATCH = TypeHintMatch( _TEST_FUNCTION_MATCH = TypeHintMatch(
function_name="test_*", function_name="test_*",

View File

@ -1,4 +1,6 @@
"""Tests for the Filesize integration.""" """Tests for the Filesize integration."""
import py
from homeassistant.components.filesize.const import DOMAIN from homeassistant.components.filesize.const import DOMAIN
from homeassistant.config_entries import ConfigEntryState from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import CONF_FILE_PATH from homeassistant.const import CONF_FILE_PATH
@ -10,7 +12,7 @@ from tests.common import MockConfigEntry
async def test_load_unload_config_entry( async def test_load_unload_config_entry(
hass: HomeAssistant, mock_config_entry: MockConfigEntry, tmpdir: str hass: HomeAssistant, mock_config_entry: MockConfigEntry, tmpdir: py.path.local
) -> None: ) -> None:
"""Test the Filesize configuration entry loading/unloading.""" """Test the Filesize configuration entry loading/unloading."""
testfile = f"{tmpdir}/file.txt" testfile = f"{tmpdir}/file.txt"
@ -33,7 +35,7 @@ async def test_load_unload_config_entry(
async def test_cannot_access_file( async def test_cannot_access_file(
hass: HomeAssistant, mock_config_entry: MockConfigEntry, tmpdir: str hass: HomeAssistant, mock_config_entry: MockConfigEntry, tmpdir: py.path.local
) -> None: ) -> None:
"""Test that an file not exist is caught.""" """Test that an file not exist is caught."""
mock_config_entry.add_to_hass(hass) mock_config_entry.add_to_hass(hass)
@ -50,7 +52,7 @@ async def test_cannot_access_file(
async def test_not_valid_path_to_file( async def test_not_valid_path_to_file(
hass: HomeAssistant, mock_config_entry: MockConfigEntry, tmpdir: str hass: HomeAssistant, mock_config_entry: MockConfigEntry, tmpdir: py.path.local
) -> None: ) -> None:
"""Test that an invalid path is caught.""" """Test that an invalid path is caught."""
testfile = f"{tmpdir}/file.txt" testfile = f"{tmpdir}/file.txt"

View File

@ -1,6 +1,8 @@
"""The tests for the filesize sensor.""" """The tests for the filesize sensor."""
import os import os
import py
from homeassistant.const import CONF_FILE_PATH, STATE_UNAVAILABLE from homeassistant.const import CONF_FILE_PATH, STATE_UNAVAILABLE
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_component import async_update_entity from homeassistant.helpers.entity_component import async_update_entity
@ -24,7 +26,7 @@ async def test_invalid_path(
async def test_valid_path( async def test_valid_path(
hass: HomeAssistant, tmpdir: str, mock_config_entry: MockConfigEntry hass: HomeAssistant, tmpdir: py.path.local, mock_config_entry: MockConfigEntry
) -> None: ) -> None:
"""Test for a valid path.""" """Test for a valid path."""
testfile = f"{tmpdir}/file.txt" testfile = f"{tmpdir}/file.txt"
@ -46,7 +48,7 @@ async def test_valid_path(
async def test_state_unavailable( async def test_state_unavailable(
hass: HomeAssistant, tmpdir: str, mock_config_entry: MockConfigEntry hass: HomeAssistant, tmpdir: py.path.local, mock_config_entry: MockConfigEntry
) -> None: ) -> None:
"""Verify we handle state unavailable.""" """Verify we handle state unavailable."""
testfile = f"{tmpdir}/file.txt" testfile = f"{tmpdir}/file.txt"

View File

@ -6,6 +6,7 @@ import logging
import pathlib import pathlib
from unittest.mock import Mock, patch from unittest.mock import Mock, patch
import py
import pytest import pytest
from homeassistant.auth.providers.legacy_api_password import ( from homeassistant.auth.providers.legacy_api_password import (
@ -150,7 +151,9 @@ async def test_proxy_config_only_trust_proxies(hass: HomeAssistant) -> None:
) )
async def test_ssl_profile_defaults_modern(hass: HomeAssistant, tmpdir) -> None: async def test_ssl_profile_defaults_modern(
hass: HomeAssistant, tmpdir: py.path.local
) -> None:
"""Test default ssl profile.""" """Test default ssl profile."""
cert_path, key_path, _ = await hass.async_add_executor_job( cert_path, key_path, _ = await hass.async_add_executor_job(
@ -175,7 +178,9 @@ async def test_ssl_profile_defaults_modern(hass: HomeAssistant, tmpdir) -> None:
assert len(mock_context.mock_calls) == 1 assert len(mock_context.mock_calls) == 1
async def test_ssl_profile_change_intermediate(hass: HomeAssistant, tmpdir) -> None: async def test_ssl_profile_change_intermediate(
hass: HomeAssistant, tmpdir: py.path.local
) -> None:
"""Test setting ssl profile to intermediate.""" """Test setting ssl profile to intermediate."""
cert_path, key_path, _ = await hass.async_add_executor_job( cert_path, key_path, _ = await hass.async_add_executor_job(
@ -206,7 +211,9 @@ async def test_ssl_profile_change_intermediate(hass: HomeAssistant, tmpdir) -> N
assert len(mock_context.mock_calls) == 1 assert len(mock_context.mock_calls) == 1
async def test_ssl_profile_change_modern(hass: HomeAssistant, tmpdir) -> None: async def test_ssl_profile_change_modern(
hass: HomeAssistant, tmpdir: py.path.local
) -> None:
"""Test setting ssl profile to modern.""" """Test setting ssl profile to modern."""
cert_path, key_path, _ = await hass.async_add_executor_job( cert_path, key_path, _ = await hass.async_add_executor_job(
@ -237,7 +244,7 @@ async def test_ssl_profile_change_modern(hass: HomeAssistant, tmpdir) -> None:
assert len(mock_context.mock_calls) == 1 assert len(mock_context.mock_calls) == 1
async def test_peer_cert(hass: HomeAssistant, tmpdir) -> None: async def test_peer_cert(hass: HomeAssistant, tmpdir: py.path.local) -> None:
"""Test required peer cert.""" """Test required peer cert."""
cert_path, key_path, peer_cert_path = await hass.async_add_executor_job( cert_path, key_path, peer_cert_path = await hass.async_add_executor_job(
_setup_empty_ssl_pem_files, tmpdir _setup_empty_ssl_pem_files, tmpdir
@ -272,7 +279,7 @@ async def test_peer_cert(hass: HomeAssistant, tmpdir) -> None:
async def test_emergency_ssl_certificate_when_invalid( async def test_emergency_ssl_certificate_when_invalid(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test http can startup with an emergency self signed cert when the current one is broken.""" """Test http can startup with an emergency self signed cert when the current one is broken."""
@ -303,7 +310,7 @@ async def test_emergency_ssl_certificate_when_invalid(
async def test_emergency_ssl_certificate_not_used_when_not_safe_mode( async def test_emergency_ssl_certificate_not_used_when_not_safe_mode(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test an emergency cert is only used in safe mode.""" """Test an emergency cert is only used in safe mode."""
@ -320,7 +327,7 @@ async def test_emergency_ssl_certificate_not_used_when_not_safe_mode(
async def test_emergency_ssl_certificate_when_invalid_get_url_fails( async def test_emergency_ssl_certificate_when_invalid_get_url_fails(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test http falls back to no ssl when an emergency cert cannot be created when the configured one is broken. """Test http falls back to no ssl when an emergency cert cannot be created when the configured one is broken.
@ -357,7 +364,7 @@ async def test_emergency_ssl_certificate_when_invalid_get_url_fails(
async def test_invalid_ssl_and_cannot_create_emergency_cert( async def test_invalid_ssl_and_cannot_create_emergency_cert(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test http falls back to no ssl when an emergency cert cannot be created when the configured one is broken.""" """Test http falls back to no ssl when an emergency cert cannot be created when the configured one is broken."""
@ -388,7 +395,7 @@ async def test_invalid_ssl_and_cannot_create_emergency_cert(
async def test_invalid_ssl_and_cannot_create_emergency_cert_with_ssl_peer_cert( async def test_invalid_ssl_and_cannot_create_emergency_cert_with_ssl_peer_cert(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test http falls back to no ssl when an emergency cert cannot be created when the configured one is broken. """Test http falls back to no ssl when an emergency cert cannot be created when the configured one is broken.

View File

@ -3,6 +3,7 @@ import asyncio
import ssl import ssl
from unittest.mock import AsyncMock, patch from unittest.mock import AsyncMock, patch
import py
from pylutron_caseta.pairing import PAIR_CA, PAIR_CERT, PAIR_KEY from pylutron_caseta.pairing import PAIR_CA, PAIR_CERT, PAIR_KEY
from pylutron_caseta.smartbridge import Smartbridge from pylutron_caseta.smartbridge import Smartbridge
import pytest import pytest
@ -192,7 +193,7 @@ async def test_already_configured_with_ignored(hass: HomeAssistant) -> None:
assert result["type"] == "form" assert result["type"] == "form"
async def test_form_user(hass: HomeAssistant, tmpdir) -> None: async def test_form_user(hass: HomeAssistant, tmpdir: py.path.local) -> None:
"""Test we get the form and can pair.""" """Test we get the form and can pair."""
hass.config.config_dir = await hass.async_add_executor_job( hass.config.config_dir = await hass.async_add_executor_job(
@ -243,7 +244,9 @@ async def test_form_user(hass: HomeAssistant, tmpdir) -> None:
assert len(mock_setup_entry.mock_calls) == 1 assert len(mock_setup_entry.mock_calls) == 1
async def test_form_user_pairing_fails(hass: HomeAssistant, tmpdir) -> None: async def test_form_user_pairing_fails(
hass: HomeAssistant, tmpdir: py.path.local
) -> None:
"""Test we get the form and we handle pairing failure.""" """Test we get the form and we handle pairing failure."""
hass.config.config_dir = await hass.async_add_executor_job( hass.config.config_dir = await hass.async_add_executor_job(
@ -289,7 +292,7 @@ async def test_form_user_pairing_fails(hass: HomeAssistant, tmpdir) -> None:
async def test_form_user_reuses_existing_assets_when_pairing_again( async def test_form_user_reuses_existing_assets_when_pairing_again(
hass: HomeAssistant, tmpdir hass: HomeAssistant, tmpdir: py.path.local
) -> None: ) -> None:
"""Test the tls assets saved on disk are reused when pairing again.""" """Test the tls assets saved on disk are reused when pairing again."""
@ -390,7 +393,9 @@ async def test_form_user_reuses_existing_assets_when_pairing_again(
} }
async def test_zeroconf_host_already_configured(hass: HomeAssistant, tmpdir) -> None: async def test_zeroconf_host_already_configured(
hass: HomeAssistant, tmpdir: py.path.local
) -> None:
"""Test starting a flow from discovery when the host is already configured.""" """Test starting a flow from discovery when the host is already configured."""
hass.config.config_dir = await hass.async_add_executor_job( hass.config.config_dir = await hass.async_add_executor_job(
@ -474,7 +479,7 @@ async def test_zeroconf_not_lutron_device(hass: HomeAssistant) -> None:
@pytest.mark.parametrize( @pytest.mark.parametrize(
"source", (config_entries.SOURCE_ZEROCONF, config_entries.SOURCE_HOMEKIT) "source", (config_entries.SOURCE_ZEROCONF, config_entries.SOURCE_HOMEKIT)
) )
async def test_zeroconf(hass: HomeAssistant, source, tmpdir) -> None: async def test_zeroconf(hass: HomeAssistant, source, tmpdir: py.path.local) -> None:
"""Test starting a flow from discovery.""" """Test starting a flow from discovery."""
hass.config.config_dir = await hass.async_add_executor_job( hass.config.config_dir = await hass.async_add_executor_job(

View File

@ -4,6 +4,7 @@ import os
import sys import sys
from unittest.mock import patch from unittest.mock import patch
import py
import pytest import pytest
from homeassistant.components.profiler import ( from homeassistant.components.profiler import (
@ -25,7 +26,7 @@ import homeassistant.util.dt as dt_util
from tests.common import MockConfigEntry, async_fire_time_changed from tests.common import MockConfigEntry, async_fire_time_changed
async def test_basic_usage(hass: HomeAssistant, tmpdir) -> None: async def test_basic_usage(hass: HomeAssistant, tmpdir: py.path.local) -> None:
"""Test we can setup and the service is registered.""" """Test we can setup and the service is registered."""
test_dir = tmpdir.mkdir("profiles") test_dir = tmpdir.mkdir("profiles")
@ -58,7 +59,7 @@ async def test_basic_usage(hass: HomeAssistant, tmpdir) -> None:
@pytest.mark.skipif( @pytest.mark.skipif(
sys.version_info >= (3, 11), reason="not yet available on python 3.11" sys.version_info >= (3, 11), reason="not yet available on python 3.11"
) )
async def test_memory_usage(hass: HomeAssistant, tmpdir) -> None: async def test_memory_usage(hass: HomeAssistant, tmpdir: py.path.local) -> None:
"""Test we can setup and the service is registered.""" """Test we can setup and the service is registered."""
test_dir = tmpdir.mkdir("profiles") test_dir = tmpdir.mkdir("profiles")
@ -89,7 +90,7 @@ async def test_memory_usage(hass: HomeAssistant, tmpdir) -> None:
@pytest.mark.skipif(sys.version_info < (3, 11), reason="still works on python 3.10") @pytest.mark.skipif(sys.version_info < (3, 11), reason="still works on python 3.10")
async def test_memory_usage_py311(hass: HomeAssistant, tmpdir) -> None: async def test_memory_usage_py311(hass: HomeAssistant, tmpdir: py.path.local) -> None:
"""Test raise an error on python3.11.""" """Test raise an error on python3.11."""
entry = MockConfigEntry(domain=DOMAIN) entry = MockConfigEntry(domain=DOMAIN)
entry.add_to_hass(hass) entry.add_to_hass(hass)

View File

@ -11,6 +11,7 @@ from typing import cast
from unittest.mock import Mock, patch from unittest.mock import Mock, patch
from freezegun.api import FrozenDateTimeFactory from freezegun.api import FrozenDateTimeFactory
import py
import pytest import pytest
from sqlalchemy.exc import DatabaseError, OperationalError, SQLAlchemyError from sqlalchemy.exc import DatabaseError, OperationalError, SQLAlchemyError
@ -1222,7 +1223,9 @@ def test_statistics_runs_initiated(hass_recorder: Callable[..., HomeAssistant])
@pytest.mark.freeze_time("2022-09-13 09:00:00+02:00") @pytest.mark.freeze_time("2022-09-13 09:00:00+02:00")
def test_compile_missing_statistics(tmpdir, freezer: FrozenDateTimeFactory) -> None: def test_compile_missing_statistics(
tmpdir: py.path.local, freezer: FrozenDateTimeFactory
) -> None:
"""Test missing statistics are compiled on startup.""" """Test missing statistics are compiled on startup."""
now = dt_util.utcnow().replace(minute=0, second=0, microsecond=0) now = dt_util.utcnow().replace(minute=0, second=0, microsecond=0)
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
@ -1482,7 +1485,7 @@ def test_service_disable_states_not_recording(
) )
def test_service_disable_run_information_recorded(tmpdir) -> None: def test_service_disable_run_information_recorded(tmpdir: py.path.local) -> None:
"""Test that runs are still recorded when recorder is disabled.""" """Test that runs are still recorded when recorder is disabled."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}" dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}"
@ -1531,7 +1534,7 @@ class CannotSerializeMe:
async def test_database_corruption_while_running( async def test_database_corruption_while_running(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test we can recover from sqlite3 db corruption.""" """Test we can recover from sqlite3 db corruption."""

View File

@ -7,6 +7,7 @@ import importlib
import sys import sys
from unittest.mock import ANY, DEFAULT, MagicMock, patch, sentinel from unittest.mock import ANY, DEFAULT, MagicMock, patch, sentinel
import py
import pytest import pytest
from sqlalchemy import create_engine, select from sqlalchemy import create_engine, select
from sqlalchemy.exc import OperationalError from sqlalchemy.exc import OperationalError
@ -1327,7 +1328,9 @@ def _create_engine_28(*args, **kwargs):
return engine return engine
def test_delete_metadata_duplicates(caplog: pytest.LogCaptureFixture, tmpdir) -> None: def test_delete_metadata_duplicates(
caplog: pytest.LogCaptureFixture, tmpdir: py.path.local
) -> None:
"""Test removal of duplicated statistics.""" """Test removal of duplicated statistics."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}" dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}"
@ -1419,7 +1422,7 @@ def test_delete_metadata_duplicates(caplog: pytest.LogCaptureFixture, tmpdir) ->
def test_delete_metadata_duplicates_many( def test_delete_metadata_duplicates_many(
caplog: pytest.LogCaptureFixture, tmpdir caplog: pytest.LogCaptureFixture, tmpdir: py.path.local
) -> None: ) -> None:
"""Test removal of duplicated statistics.""" """Test removal of duplicated statistics."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")

View File

@ -9,6 +9,7 @@ import json
import sys import sys
from unittest.mock import patch from unittest.mock import patch
import py
import pytest import pytest
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
@ -52,7 +53,9 @@ def _create_engine_test(*args, **kwargs):
return engine return engine
def test_delete_duplicates(caplog: pytest.LogCaptureFixture, tmpdir) -> None: def test_delete_duplicates(
caplog: pytest.LogCaptureFixture, tmpdir: py.path.local
) -> None:
"""Test removal of duplicated statistics.""" """Test removal of duplicated statistics."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}" dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}"
@ -222,7 +225,9 @@ def test_delete_duplicates(caplog: pytest.LogCaptureFixture, tmpdir) -> None:
assert "Found duplicated" not in caplog.text assert "Found duplicated" not in caplog.text
def test_delete_duplicates_many(caplog: pytest.LogCaptureFixture, tmpdir) -> None: def test_delete_duplicates_many(
caplog: pytest.LogCaptureFixture, tmpdir: py.path.local
) -> None:
"""Test removal of duplicated statistics.""" """Test removal of duplicated statistics."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}" dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}"
@ -400,7 +405,7 @@ def test_delete_duplicates_many(caplog: pytest.LogCaptureFixture, tmpdir) -> Non
@pytest.mark.freeze_time("2021-08-01 00:00:00+00:00") @pytest.mark.freeze_time("2021-08-01 00:00:00+00:00")
def test_delete_duplicates_non_identical( def test_delete_duplicates_non_identical(
caplog: pytest.LogCaptureFixture, tmpdir caplog: pytest.LogCaptureFixture, tmpdir: py.path.local
) -> None: ) -> None:
"""Test removal of duplicated statistics.""" """Test removal of duplicated statistics."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
@ -572,7 +577,9 @@ def test_delete_duplicates_non_identical(
] ]
def test_delete_duplicates_short_term(caplog: pytest.LogCaptureFixture, tmpdir) -> None: def test_delete_duplicates_short_term(
caplog: pytest.LogCaptureFixture, tmpdir: py.path.local
) -> None:
"""Test removal of duplicated statistics.""" """Test removal of duplicated statistics."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}" dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}"

View File

@ -7,6 +7,7 @@ import sqlite3
from unittest.mock import MagicMock, Mock, patch from unittest.mock import MagicMock, Mock, patch
from freezegun import freeze_time from freezegun import freeze_time
import py
import pytest import pytest
from sqlalchemy import text from sqlalchemy import text
from sqlalchemy.engine.result import ChunkedIteratorResult from sqlalchemy.engine.result import ChunkedIteratorResult
@ -73,7 +74,7 @@ def test_recorder_bad_execute(hass_recorder: Callable[..., HomeAssistant]) -> No
def test_validate_or_move_away_sqlite_database( def test_validate_or_move_away_sqlite_database(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Ensure a malformed sqlite database is moved away.""" """Ensure a malformed sqlite database is moved away."""

View File

@ -6,6 +6,7 @@ import importlib
import sys import sys
from unittest.mock import patch from unittest.mock import patch
import py
import pytest import pytest
from sqlalchemy import create_engine, inspect from sqlalchemy import create_engine, inspect
from sqlalchemy.orm import Session from sqlalchemy.orm import Session
@ -51,7 +52,9 @@ def _create_engine_test(*args, **kwargs):
return engine return engine
async def test_migrate_times(caplog: pytest.LogCaptureFixture, tmpdir) -> None: async def test_migrate_times(
caplog: pytest.LogCaptureFixture, tmpdir: py.path.local
) -> None:
"""Test we can migrate times.""" """Test we can migrate times."""
test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db") test_db_file = tmpdir.mkdir("sqlite").join("test_run_info.db")
dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}" dburl = f"{SQLITE_URL_PREFIX}//{test_db_file}"

View File

@ -5,6 +5,7 @@ import json
from typing import Any, NamedTuple from typing import Any, NamedTuple
from unittest.mock import Mock, patch from unittest.mock import Mock, patch
import py
import pytest import pytest
from homeassistant.const import ( from homeassistant.const import (
@ -505,7 +506,7 @@ async def test_changing_delayed_written_data(
} }
async def test_saving_load_round_trip(tmpdir) -> None: async def test_saving_load_round_trip(tmpdir: py.path.local) -> None:
"""Test saving and loading round trip.""" """Test saving and loading round trip."""
loop = asyncio.get_running_loop() loop = asyncio.get_running_loop()
hass = await async_test_home_assistant(loop) hass = await async_test_home_assistant(loop)

View File

@ -4,13 +4,15 @@ from datetime import timedelta
import os import os
from unittest.mock import patch from unittest.mock import patch
import py
from homeassistant.helpers import storage from homeassistant.helpers import storage
from homeassistant.util import dt from homeassistant.util import dt
from tests.common import async_fire_time_changed, async_test_home_assistant from tests.common import async_fire_time_changed, async_test_home_assistant
async def test_removing_while_delay_in_progress(tmpdir) -> None: async def test_removing_while_delay_in_progress(tmpdir: py.path.local) -> None:
"""Test removing while delay in progress.""" """Test removing while delay in progress."""
loop = asyncio.get_event_loop() loop = asyncio.get_event_loop()

View File

@ -3,6 +3,7 @@ import asyncio
import threading import threading
from unittest.mock import patch from unittest.mock import patch
import py
import pytest import pytest
from homeassistant import core, runner from homeassistant import core, runner
@ -28,7 +29,7 @@ async def test_cumulative_shutdown_timeout_less_than_supervisor() -> None:
) )
async def test_setup_and_run_hass(hass: HomeAssistant, tmpdir) -> None: async def test_setup_and_run_hass(hass: HomeAssistant, tmpdir: py.path.local) -> None:
"""Test we can setup and run.""" """Test we can setup and run."""
test_dir = tmpdir.mkdir("config") test_dir = tmpdir.mkdir("config")
default_config = runner.RuntimeConfig(test_dir) default_config = runner.RuntimeConfig(test_dir)
@ -42,7 +43,7 @@ async def test_setup_and_run_hass(hass: HomeAssistant, tmpdir) -> None:
assert mock_run.called assert mock_run.called
def test_run(hass: HomeAssistant, tmpdir) -> None: def test_run(hass: HomeAssistant, tmpdir: py.path.local) -> None:
"""Test we can run.""" """Test we can run."""
test_dir = tmpdir.mkdir("config") test_dir = tmpdir.mkdir("config")
default_config = runner.RuntimeConfig(test_dir) default_config = runner.RuntimeConfig(test_dir)
@ -57,7 +58,9 @@ def test_run(hass: HomeAssistant, tmpdir) -> None:
assert mock_run.called assert mock_run.called
def test_run_executor_shutdown_throws(hass: HomeAssistant, tmpdir) -> None: def test_run_executor_shutdown_throws(
hass: HomeAssistant, tmpdir: py.path.local
) -> None:
"""Test we can run and we still shutdown if the executor shutdown throws.""" """Test we can run and we still shutdown if the executor shutdown throws."""
test_dir = tmpdir.mkdir("config") test_dir = tmpdir.mkdir("config")
default_config = runner.RuntimeConfig(test_dir) default_config = runner.RuntimeConfig(test_dir)
@ -79,7 +82,7 @@ def test_run_executor_shutdown_throws(hass: HomeAssistant, tmpdir) -> None:
def test_run_does_not_block_forever_with_shielded_task( def test_run_does_not_block_forever_with_shielded_task(
hass: HomeAssistant, tmpdir, caplog: pytest.LogCaptureFixture hass: HomeAssistant, tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test we can shutdown and not block forever.""" """Test we can shutdown and not block forever."""
test_dir = tmpdir.mkdir("config") test_dir = tmpdir.mkdir("config")

View File

@ -3,13 +3,14 @@ import os
from pathlib import Path from pathlib import Path
from unittest.mock import patch from unittest.mock import patch
import py
import pytest import pytest
from homeassistant.util.file import WriteError, write_utf8_file, write_utf8_file_atomic from homeassistant.util.file import WriteError, write_utf8_file, write_utf8_file_atomic
@pytest.mark.parametrize("func", [write_utf8_file, write_utf8_file_atomic]) @pytest.mark.parametrize("func", [write_utf8_file, write_utf8_file_atomic])
def test_write_utf8_file_atomic_private(tmpdir, func) -> None: def test_write_utf8_file_atomic_private(tmpdir: py.path.local, func) -> None:
"""Test files can be written as 0o600 or 0o644.""" """Test files can be written as 0o600 or 0o644."""
test_dir = tmpdir.mkdir("files") test_dir = tmpdir.mkdir("files")
test_file = Path(test_dir / "test.json") test_file = Path(test_dir / "test.json")
@ -25,7 +26,7 @@ def test_write_utf8_file_atomic_private(tmpdir, func) -> None:
assert os.stat(test_file).st_mode & 0o777 == 0o600 assert os.stat(test_file).st_mode & 0o777 == 0o600
def test_write_utf8_file_fails_at_creation(tmpdir) -> None: def test_write_utf8_file_fails_at_creation(tmpdir: py.path.local) -> None:
"""Test that failed creation of the temp file does not create an empty file.""" """Test that failed creation of the temp file does not create an empty file."""
test_dir = tmpdir.mkdir("files") test_dir = tmpdir.mkdir("files")
test_file = Path(test_dir / "test.json") test_file = Path(test_dir / "test.json")
@ -39,7 +40,7 @@ def test_write_utf8_file_fails_at_creation(tmpdir) -> None:
def test_write_utf8_file_fails_at_rename( def test_write_utf8_file_fails_at_rename(
tmpdir, caplog: pytest.LogCaptureFixture tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test that if rename fails not not remove, we do not log the failed cleanup.""" """Test that if rename fails not not remove, we do not log the failed cleanup."""
test_dir = tmpdir.mkdir("files") test_dir = tmpdir.mkdir("files")
@ -56,7 +57,7 @@ def test_write_utf8_file_fails_at_rename(
def test_write_utf8_file_fails_at_rename_and_remove( def test_write_utf8_file_fails_at_rename_and_remove(
tmpdir, caplog: pytest.LogCaptureFixture tmpdir: py.path.local, caplog: pytest.LogCaptureFixture
) -> None: ) -> None:
"""Test that if rename and remove both fail, we log the failed cleanup.""" """Test that if rename and remove both fail, we log the failed cleanup."""
test_dir = tmpdir.mkdir("files") test_dir = tmpdir.mkdir("files")
@ -70,7 +71,7 @@ def test_write_utf8_file_fails_at_rename_and_remove(
assert "File replacement cleanup failed" in caplog.text assert "File replacement cleanup failed" in caplog.text
def test_write_utf8_file_atomic_fails(tmpdir) -> None: def test_write_utf8_file_atomic_fails(tmpdir: py.path.local) -> None:
"""Test OSError from write_utf8_file_atomic is rethrown as WriteError.""" """Test OSError from write_utf8_file_atomic is rethrown as WriteError."""
test_dir = tmpdir.mkdir("files") test_dir = tmpdir.mkdir("files")
test_file = Path(test_dir / "test.json") test_file = Path(test_dir / "test.json")