mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 00:37:53 +00:00
Add tests for deprecation helpers (#7452)
This commit is contained in:
parent
6cc85adb81
commit
7dd7f509ca
85
tests/helpers/test_deprecation.py
Normal file
85
tests/helpers/test_deprecation.py
Normal file
@ -0,0 +1,85 @@
|
||||
"""Test deprecation helpers."""
|
||||
from homeassistant.helpers.deprecation import (
|
||||
deprecated_substitute, get_deprecated)
|
||||
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
|
||||
class MockBaseClass():
|
||||
"""Mock base class for deprecated testing."""
|
||||
|
||||
@property
|
||||
@deprecated_substitute('old_property')
|
||||
def new_property(self):
|
||||
"""Test property to fetch."""
|
||||
raise NotImplementedError()
|
||||
|
||||
|
||||
class MockDeprecatedClass(MockBaseClass):
|
||||
"""Mock deprecated class object."""
|
||||
|
||||
@property
|
||||
def old_property(self):
|
||||
"""Test property to fetch."""
|
||||
return True
|
||||
|
||||
|
||||
class MockUpdatedClass(MockBaseClass):
|
||||
"""Mock updated class object."""
|
||||
|
||||
@property
|
||||
def new_property(self):
|
||||
"""Test property to fetch."""
|
||||
return True
|
||||
|
||||
|
||||
@patch('logging.getLogger')
|
||||
def test_deprecated_substitute_old_class(mock_get_logger):
|
||||
"""Test deprecated class object."""
|
||||
mock_logger = MagicMock()
|
||||
mock_get_logger.return_value = mock_logger
|
||||
|
||||
mock_object = MockDeprecatedClass()
|
||||
assert mock_object.new_property is True
|
||||
assert mock_object.new_property is True
|
||||
assert mock_logger.warning.called
|
||||
assert len(mock_logger.warning.mock_calls) == 1
|
||||
|
||||
|
||||
@patch('logging.getLogger')
|
||||
def test_deprecated_substitute_new_class(mock_get_logger):
|
||||
"""Test deprecated class object."""
|
||||
mock_logger = MagicMock()
|
||||
mock_get_logger.return_value = mock_logger
|
||||
|
||||
mock_object = MockUpdatedClass()
|
||||
assert mock_object.new_property is True
|
||||
assert mock_object.new_property is True
|
||||
assert not mock_logger.warning.called
|
||||
|
||||
|
||||
@patch('logging.getLogger')
|
||||
def test_config_get_deprecated_old(mock_get_logger):
|
||||
"""Test deprecated class object."""
|
||||
mock_logger = MagicMock()
|
||||
mock_get_logger.return_value = mock_logger
|
||||
|
||||
config = {
|
||||
'old_name': True,
|
||||
}
|
||||
assert get_deprecated(config, 'new_name', 'old_name') is True
|
||||
assert mock_logger.warning.called
|
||||
assert len(mock_logger.warning.mock_calls) == 1
|
||||
|
||||
|
||||
@patch('logging.getLogger')
|
||||
def test_config_get_deprecated_new(mock_get_logger):
|
||||
"""Test deprecated class object."""
|
||||
mock_logger = MagicMock()
|
||||
mock_get_logger.return_value = mock_logger
|
||||
|
||||
config = {
|
||||
'new_name': True,
|
||||
}
|
||||
assert get_deprecated(config, 'new_name', 'old_name') is True
|
||||
assert not mock_logger.warning.called
|
Loading…
x
Reference in New Issue
Block a user