mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Catch UnicodeDecodeError Error (#4007)
* Catch UnicodeDecodeError Error Error for #3933 * Forgot (exc) * catch... * Tests by @lwis * Docstring * Create open
This commit is contained in:
parent
1f89e6ddba
commit
5df8477536
@ -43,6 +43,9 @@ def load_yaml(fname: str) -> Union[List, Dict]:
|
|||||||
except yaml.YAMLError as exc:
|
except yaml.YAMLError as exc:
|
||||||
_LOGGER.error(exc)
|
_LOGGER.error(exc)
|
||||||
raise HomeAssistantError(exc)
|
raise HomeAssistantError(exc)
|
||||||
|
except UnicodeDecodeError as exc:
|
||||||
|
_LOGGER.error('Unable to read file %s: %s', fname, exc)
|
||||||
|
raise HomeAssistantError(exc)
|
||||||
|
|
||||||
|
|
||||||
def clear_secret_cache() -> None:
|
def clear_secret_cache() -> None:
|
||||||
|
@ -95,7 +95,6 @@ class TestYaml(unittest.TestCase):
|
|||||||
mock_walk.return_value = [
|
mock_walk.return_value = [
|
||||||
['/tmp', ['tmp2', '.ignore', 'ignore'], ['zero.yaml']],
|
['/tmp', ['tmp2', '.ignore', 'ignore'], ['zero.yaml']],
|
||||||
['/tmp/tmp2', [], ['one.yaml', 'two.yaml']],
|
['/tmp/tmp2', [], ['one.yaml', 'two.yaml']],
|
||||||
['/tmp/.ignore', [], []],
|
|
||||||
['/tmp/ignore', [], ['.ignore.yaml']]
|
['/tmp/ignore', [], ['.ignore.yaml']]
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -136,7 +135,6 @@ class TestYaml(unittest.TestCase):
|
|||||||
mock_walk.return_value = [
|
mock_walk.return_value = [
|
||||||
['/tmp', ['tmp2', '.ignore', 'ignore'], ['first.yaml']],
|
['/tmp', ['tmp2', '.ignore', 'ignore'], ['first.yaml']],
|
||||||
['/tmp/tmp2', [], ['second.yaml', 'third.yaml']],
|
['/tmp/tmp2', [], ['second.yaml', 'third.yaml']],
|
||||||
['/tmp/.ignore', [], []],
|
|
||||||
['/tmp/ignore', [], ['.ignore.yaml']]
|
['/tmp/ignore', [], ['.ignore.yaml']]
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -175,7 +173,6 @@ class TestYaml(unittest.TestCase):
|
|||||||
mock_walk.return_value = [
|
mock_walk.return_value = [
|
||||||
['/tmp', ['tmp2', '.ignore', 'ignore'], ['first.yaml']],
|
['/tmp', ['tmp2', '.ignore', 'ignore'], ['first.yaml']],
|
||||||
['/tmp/tmp2', [], ['second.yaml', 'third.yaml']],
|
['/tmp/tmp2', [], ['second.yaml', 'third.yaml']],
|
||||||
['/tmp/.ignore', [], []],
|
|
||||||
['/tmp/ignore', [], ['.ignore.yaml']]
|
['/tmp/ignore', [], ['.ignore.yaml']]
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -218,7 +215,6 @@ class TestYaml(unittest.TestCase):
|
|||||||
mock_walk.return_value = [
|
mock_walk.return_value = [
|
||||||
['/tmp', ['tmp2', '.ignore', 'ignore'], ['first.yaml']],
|
['/tmp', ['tmp2', '.ignore', 'ignore'], ['first.yaml']],
|
||||||
['/tmp/tmp2', [], ['second.yaml', 'third.yaml']],
|
['/tmp/tmp2', [], ['second.yaml', 'third.yaml']],
|
||||||
['/tmp/.ignore', [], []],
|
|
||||||
['/tmp/ignore', [], ['.ignore.yaml']]
|
['/tmp/ignore', [], ['.ignore.yaml']]
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -241,6 +237,13 @@ class TestYaml(unittest.TestCase):
|
|||||||
"key4": "four"
|
"key4": "four"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@patch('homeassistant.util.yaml.open', create=True)
|
||||||
|
def test_load_yaml_encoding_error(self, mock_open):
|
||||||
|
"""Test raising a UnicodeDecodeError."""
|
||||||
|
mock_open.side_effect = UnicodeDecodeError('', b'', 1, 0, '')
|
||||||
|
self.assertRaises(HomeAssistantError, yaml.load_yaml, 'test')
|
||||||
|
|
||||||
|
|
||||||
FILES = {}
|
FILES = {}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user