mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Add options flow to File (#120269)
* Add options flow to File * Review comments
This commit is contained in:
65
tests/components/file/test_init.py
Normal file
65
tests/components/file/test_init.py
Normal file
@@ -0,0 +1,65 @@
|
||||
"""The tests for local file init."""
|
||||
|
||||
from unittest.mock import MagicMock, Mock, patch
|
||||
|
||||
from homeassistant.components.file import DOMAIN
|
||||
from homeassistant.config_entries import ConfigEntryState
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from tests.common import MockConfigEntry, get_fixture_path
|
||||
|
||||
|
||||
@patch("os.path.isfile", Mock(return_value=True))
|
||||
@patch("os.access", Mock(return_value=True))
|
||||
async def test_migration_to_version_2(
|
||||
hass: HomeAssistant, mock_is_allowed_path: MagicMock
|
||||
) -> None:
|
||||
"""Test the File sensor with JSON entries."""
|
||||
data = {
|
||||
"platform": "sensor",
|
||||
"name": "file2",
|
||||
"file_path": get_fixture_path("file_value_template.txt", "file"),
|
||||
"value_template": "{{ value_json.temperature }}",
|
||||
}
|
||||
|
||||
entry = MockConfigEntry(
|
||||
domain=DOMAIN,
|
||||
version=1,
|
||||
data=data,
|
||||
title=f"test [{data['file_path']}]",
|
||||
)
|
||||
entry.add_to_hass(hass)
|
||||
await hass.config_entries.async_setup(entry.entry_id)
|
||||
|
||||
assert entry.state is ConfigEntryState.LOADED
|
||||
assert entry.version == 2
|
||||
assert entry.data == {
|
||||
"platform": "sensor",
|
||||
"name": "file2",
|
||||
"file_path": get_fixture_path("file_value_template.txt", "file"),
|
||||
}
|
||||
assert entry.options == {
|
||||
"value_template": "{{ value_json.temperature }}",
|
||||
}
|
||||
|
||||
|
||||
@patch("os.path.isfile", Mock(return_value=True))
|
||||
@patch("os.access", Mock(return_value=True))
|
||||
async def test_migration_from_future_version(
|
||||
hass: HomeAssistant, mock_is_allowed_path: MagicMock
|
||||
) -> None:
|
||||
"""Test the File sensor with JSON entries."""
|
||||
data = {
|
||||
"platform": "sensor",
|
||||
"name": "file2",
|
||||
"file_path": get_fixture_path("file_value_template.txt", "file"),
|
||||
"value_template": "{{ value_json.temperature }}",
|
||||
}
|
||||
|
||||
entry = MockConfigEntry(
|
||||
domain=DOMAIN, version=3, data=data, title=f"test [{data['file_path']}]"
|
||||
)
|
||||
entry.add_to_hass(hass)
|
||||
await hass.config_entries.async_setup(entry.entry_id)
|
||||
|
||||
assert entry.state is ConfigEntryState.MIGRATION_ERROR
|
||||
Reference in New Issue
Block a user