Add tests for deprecation helpers (#7452)

This commit is contained in:
Adam Mills 2017-05-06 13:10:48 -04:00 committed by Paulus Schoutsen
parent 6cc85adb81
commit 7dd7f509ca

View 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