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,42 +1,32 @@
"""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"}
class TestKiraSensor(unittest.TestCase):
"""Tests the Kira Sensor platform."""
# pylint: disable=invalid-name
DEVICES = [] DEVICES = []
def add_entities(self, devices):
def add_entities(devices):
"""Mock add devices.""" """Mock add devices."""
for device in devices: for device in devices:
self.DEVICES.append(device) DEVICES.append(device)
def setUp(self):
"""Initialize values for this testcase class."""
self.hass = get_test_home_assistant()
self.mock_kira = MagicMock()
self.hass.data[kira.DOMAIN] = {kira.CONF_REMOTE: {}}
self.hass.data[kira.DOMAIN][kira.CONF_REMOTE]["kira"] = self.mock_kira
self.addCleanup(self.hass.stop)
def test_service_call(self): def test_service_call(hass):
"""Test Kira's ability to send commands.""" """Test Kira's ability to send commands."""
kira.setup_platform(self.hass, TEST_CONFIG, self.add_entities, DISCOVERY_INFO) mock_kira = MagicMock()
assert len(self.DEVICES) == 1 hass.data[kira.DOMAIN] = {kira.CONF_REMOTE: {}}
remote = self.DEVICES[0] hass.data[kira.DOMAIN][kira.CONF_REMOTE]["kira"] = mock_kira
kira.setup_platform(hass, TEST_CONFIG, add_entities, DISCOVERY_INFO)
assert len(DEVICES) == 1
remote = DEVICES[0]
assert remote.name == "kira" assert remote.name == "kira"
@ -45,4 +35,4 @@ class TestKiraSensor(unittest.TestCase):
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"}
class TestKiraSensor(unittest.TestCase):
"""Tests the Kira Sensor platform."""
# pylint: disable=invalid-name
DEVICES = [] DEVICES = []
def add_entities(self, devices):
def add_entities(devices):
"""Mock add devices.""" """Mock add devices."""
for device in devices: for device in devices:
self.DEVICES.append(device) DEVICES.append(device)
def setUp(self):
"""Initialize values for this testcase class."""
self.hass = get_test_home_assistant()
mock_kira = MagicMock()
self.hass.data[kira.DOMAIN] = {kira.CONF_SENSOR: {}}
self.hass.data[kira.DOMAIN][kira.CONF_SENSOR]["kira"] = mock_kira
self.addCleanup(self.hass.stop)
# pylint: disable=protected-access @patch("homeassistant.components.kira.sensor.KiraReceiver.schedule_update_ha_state")
def test_kira_sensor_callback(self): def test_kira_sensor_callback(mock_schedule_update_ha_state, hass):
"""Ensure Kira sensor properly updates its attributes from callback.""" """Ensure Kira sensor properly updates its attributes from callback."""
kira.setup_platform(self.hass, TEST_CONFIG, self.add_entities, DISCOVERY_INFO) mock_kira = MagicMock()
assert len(self.DEVICES) == 1 hass.data[kira.DOMAIN] = {kira.CONF_SENSOR: {}}
sensor = self.DEVICES[0] hass.data[kira.DOMAIN][kira.CONF_SENSOR]["kira"] = mock_kira
kira.setup_platform(hass, TEST_CONFIG, add_entities, DISCOVERY_INFO)
assert len(DEVICES) == 1
sensor = 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)
mock_schedule_update_ha_state.assert_called
assert sensor.state == codeName assert sensor.state == codeName
assert sensor.extra_state_attributes == {kira.CONF_DEVICE: deviceName} assert sensor.extra_state_attributes == {kira.CONF_DEVICE: deviceName}