Add location details to deprecation warning (#47155)
This commit is contained in:
parent
f3c74948c3
commit
f86e7535e0
2 changed files with 87 additions and 6 deletions
|
@ -1,4 +1,5 @@
|
|||
"""Test config validators."""
|
||||
from collections import OrderedDict
|
||||
from datetime import date, datetime, timedelta
|
||||
import enum
|
||||
import os
|
||||
|
@ -799,6 +800,77 @@ def test_deprecated_cant_find_module():
|
|||
)
|
||||
|
||||
|
||||
def test_deprecated_logger_with_config_attributes(caplog):
|
||||
"""Test if the logger outputs the correct message if the line and file attribute is available in config."""
|
||||
file: str = "configuration.yaml"
|
||||
line: int = 54
|
||||
replacement = f"'mars' option near {file}:{line} is deprecated"
|
||||
config = OrderedDict([("mars", "blah")])
|
||||
setattr(config, "__config_file__", file)
|
||||
setattr(config, "__line__", line)
|
||||
|
||||
cv.deprecated("mars", replacement_key="jupiter", default=False)(config)
|
||||
|
||||
assert len(caplog.records) == 1
|
||||
assert replacement in caplog.text
|
||||
|
||||
caplog.clear()
|
||||
assert len(caplog.records) == 0
|
||||
|
||||
|
||||
def test_deprecated_logger_with_one_config_attribute(caplog):
|
||||
"""Test if the logger outputs the correct message if only one of line and file attribute is available in config."""
|
||||
file: str = "configuration.yaml"
|
||||
line: int = 54
|
||||
replacement = f"'mars' option near {file}:{line} is deprecated"
|
||||
config = OrderedDict([("mars", "blah")])
|
||||
setattr(config, "__config_file__", file)
|
||||
|
||||
cv.deprecated("mars", replacement_key="jupiter", default=False)(config)
|
||||
|
||||
assert len(caplog.records) == 1
|
||||
assert replacement not in caplog.text
|
||||
assert (
|
||||
"The 'mars' option is deprecated, please replace it with 'jupiter'"
|
||||
) in caplog.text
|
||||
|
||||
caplog.clear()
|
||||
assert len(caplog.records) == 0
|
||||
|
||||
config = OrderedDict([("mars", "blah")])
|
||||
setattr(config, "__line__", line)
|
||||
|
||||
cv.deprecated("mars", replacement_key="jupiter", default=False)(config)
|
||||
|
||||
assert len(caplog.records) == 1
|
||||
assert replacement not in caplog.text
|
||||
assert (
|
||||
"The 'mars' option is deprecated, please replace it with 'jupiter'"
|
||||
) in caplog.text
|
||||
|
||||
caplog.clear()
|
||||
assert len(caplog.records) == 0
|
||||
|
||||
|
||||
def test_deprecated_logger_without_config_attributes(caplog):
|
||||
"""Test if the logger outputs the correct message if the line and file attribute is not available in config."""
|
||||
file: str = "configuration.yaml"
|
||||
line: int = 54
|
||||
replacement = f"'mars' option near {file}:{line} is deprecated"
|
||||
config = OrderedDict([("mars", "blah")])
|
||||
|
||||
cv.deprecated("mars", replacement_key="jupiter", default=False)(config)
|
||||
|
||||
assert len(caplog.records) == 1
|
||||
assert replacement not in caplog.text
|
||||
assert (
|
||||
"The 'mars' option is deprecated, please replace it with 'jupiter'"
|
||||
) in caplog.text
|
||||
|
||||
caplog.clear()
|
||||
assert len(caplog.records) == 0
|
||||
|
||||
|
||||
def test_key_dependency():
|
||||
"""Test key_dependency validator."""
|
||||
schema = vol.Schema(cv.key_dependency("beer", "soda"))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue