Convert kira tests to pytest (#79747)

This commit is contained in:
taiyeoguns 2022-10-07 07:21:18 +01:00 committed by GitHub
parent 90d39a414c
commit 9a81b65815
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 62 deletions

View File

@ -1,48 +1,38 @@
"""The tests for Kira sensor platform.""" """The tests for Kira sensor platform."""
import unittest
from unittest.mock import MagicMock from unittest.mock import MagicMock
from homeassistant.components.kira import remote as kira from homeassistant.components.kira import remote as kira
from tests.common import get_test_home_assistant
SERVICE_SEND_COMMAND = "send_command" SERVICE_SEND_COMMAND = "send_command"
TEST_CONFIG = {kira.DOMAIN: {"devices": [{"host": "127.0.0.1", "port": 17324}]}} TEST_CONFIG = {kira.DOMAIN: {"devices": [{"host": "127.0.0.1", "port": 17324}]}}
DISCOVERY_INFO = {"name": "kira", "device": "kira"} DISCOVERY_INFO = {"name": "kira", "device": "kira"}
DEVICES = []
class TestKiraSensor(unittest.TestCase):
"""Tests the Kira Sensor platform."""
# pylint: disable=invalid-name def add_entities(devices):
DEVICES = [] """Mock add devices."""
for device in devices:
DEVICES.append(device)
def add_entities(self, devices):
"""Mock add devices."""
for device in devices:
self.DEVICES.append(device)
def setUp(self): def test_service_call(hass):
"""Initialize values for this testcase class.""" """Test Kira's ability to send commands."""
self.hass = get_test_home_assistant() mock_kira = MagicMock()
self.mock_kira = MagicMock() hass.data[kira.DOMAIN] = {kira.CONF_REMOTE: {}}
self.hass.data[kira.DOMAIN] = {kira.CONF_REMOTE: {}} hass.data[kira.DOMAIN][kira.CONF_REMOTE]["kira"] = mock_kira
self.hass.data[kira.DOMAIN][kira.CONF_REMOTE]["kira"] = self.mock_kira
self.addCleanup(self.hass.stop)
def test_service_call(self): kira.setup_platform(hass, TEST_CONFIG, add_entities, DISCOVERY_INFO)
"""Test Kira's ability to send commands.""" assert len(DEVICES) == 1
kira.setup_platform(self.hass, TEST_CONFIG, self.add_entities, DISCOVERY_INFO) remote = DEVICES[0]
assert len(self.DEVICES) == 1
remote = self.DEVICES[0]
assert remote.name == "kira" assert remote.name == "kira"
command = ["FAKE_COMMAND"] command = ["FAKE_COMMAND"]
device = "FAKE_DEVICE" device = "FAKE_DEVICE"
commandTuple = (command[0], device) commandTuple = (command[0], device)
remote.send_command(device=device, command=command) remote.send_command(device=device, command=command)
self.mock_kira.sendCode.assert_called_with(commandTuple) mock_kira.sendCode.assert_called_with(commandTuple)

View File

@ -1,50 +1,42 @@
"""The tests for Kira sensor platform.""" """The tests for Kira sensor platform."""
import unittest from unittest.mock import MagicMock, patch
from unittest.mock import MagicMock
from homeassistant.components.kira import sensor as kira from homeassistant.components.kira import sensor as kira
from tests.common import get_test_home_assistant
TEST_CONFIG = {kira.DOMAIN: {"sensors": [{"host": "127.0.0.1", "port": 17324}]}} TEST_CONFIG = {kira.DOMAIN: {"sensors": [{"host": "127.0.0.1", "port": 17324}]}}
DISCOVERY_INFO = {"name": "kira", "device": "kira"} DISCOVERY_INFO = {"name": "kira", "device": "kira"}
DEVICES = []
class TestKiraSensor(unittest.TestCase):
"""Tests the Kira Sensor platform."""
# pylint: disable=invalid-name def add_entities(devices):
DEVICES = [] """Mock add devices."""
for device in devices:
DEVICES.append(device)
def add_entities(self, devices):
"""Mock add devices."""
for device in devices:
self.DEVICES.append(device)
def setUp(self): @patch("homeassistant.components.kira.sensor.KiraReceiver.schedule_update_ha_state")
"""Initialize values for this testcase class.""" def test_kira_sensor_callback(mock_schedule_update_ha_state, hass):
self.hass = get_test_home_assistant() """Ensure Kira sensor properly updates its attributes from callback."""
mock_kira = MagicMock() mock_kira = MagicMock()
self.hass.data[kira.DOMAIN] = {kira.CONF_SENSOR: {}} hass.data[kira.DOMAIN] = {kira.CONF_SENSOR: {}}
self.hass.data[kira.DOMAIN][kira.CONF_SENSOR]["kira"] = mock_kira hass.data[kira.DOMAIN][kira.CONF_SENSOR]["kira"] = mock_kira
self.addCleanup(self.hass.stop)
# pylint: disable=protected-access kira.setup_platform(hass, TEST_CONFIG, add_entities, DISCOVERY_INFO)
def test_kira_sensor_callback(self): assert len(DEVICES) == 1
"""Ensure Kira sensor properly updates its attributes from callback.""" sensor = DEVICES[0]
kira.setup_platform(self.hass, TEST_CONFIG, self.add_entities, DISCOVERY_INFO)
assert len(self.DEVICES) == 1
sensor = self.DEVICES[0]
assert sensor.name == "kira" assert sensor.name == "kira"
sensor.hass = self.hass sensor.hass = hass
codeName = "FAKE_CODE" codeName = "FAKE_CODE"
deviceName = "FAKE_DEVICE" deviceName = "FAKE_DEVICE"
codeTuple = (codeName, deviceName) codeTuple = (codeName, deviceName)
sensor._update_callback(codeTuple) sensor._update_callback(codeTuple)
assert sensor.state == codeName mock_schedule_update_ha_state.assert_called
assert sensor.extra_state_attributes == {kira.CONF_DEVICE: deviceName}
assert sensor.state == codeName
assert sensor.extra_state_attributes == {kira.CONF_DEVICE: deviceName}