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."""
import unittest
from unittest.mock import MagicMock
from homeassistant.components.kira import remote as kira
from tests.common import get_test_home_assistant
SERVICE_SEND_COMMAND = "send_command"
TEST_CONFIG = {kira.DOMAIN: {"devices": [{"host": "127.0.0.1", "port": 17324}]}}
DISCOVERY_INFO = {"name": "kira", "device": "kira"}
DEVICES = []
class TestKiraSensor(unittest.TestCase):
"""Tests the Kira Sensor platform."""
# pylint: disable=invalid-name
DEVICES = []
def add_entities(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):
"""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(hass):
"""Test Kira's ability to send commands."""
mock_kira = MagicMock()
hass.data[kira.DOMAIN] = {kira.CONF_REMOTE: {}}
hass.data[kira.DOMAIN][kira.CONF_REMOTE]["kira"] = mock_kira
def test_service_call(self):
"""Test Kira's ability to send commands."""
kira.setup_platform(self.hass, TEST_CONFIG, self.add_entities, DISCOVERY_INFO)
assert len(self.DEVICES) == 1
remote = self.DEVICES[0]
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"
command = ["FAKE_COMMAND"]
device = "FAKE_DEVICE"
commandTuple = (command[0], device)
remote.send_command(device=device, command=command)
command = ["FAKE_COMMAND"]
device = "FAKE_DEVICE"
commandTuple = (command[0], device)
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."""
import unittest
from unittest.mock import MagicMock
from unittest.mock import MagicMock, patch
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}]}}
DISCOVERY_INFO = {"name": "kira", "device": "kira"}
DEVICES = []
class TestKiraSensor(unittest.TestCase):
"""Tests the Kira Sensor platform."""
# pylint: disable=invalid-name
DEVICES = []
def add_entities(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):
"""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)
@patch("homeassistant.components.kira.sensor.KiraReceiver.schedule_update_ha_state")
def test_kira_sensor_callback(mock_schedule_update_ha_state, hass):
"""Ensure Kira sensor properly updates its attributes from callback."""
mock_kira = MagicMock()
hass.data[kira.DOMAIN] = {kira.CONF_SENSOR: {}}
hass.data[kira.DOMAIN][kira.CONF_SENSOR]["kira"] = mock_kira
# pylint: disable=protected-access
def test_kira_sensor_callback(self):
"""Ensure Kira sensor properly updates its attributes from callback."""
kira.setup_platform(self.hass, TEST_CONFIG, self.add_entities, DISCOVERY_INFO)
assert len(self.DEVICES) == 1
sensor = self.DEVICES[0]
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"
deviceName = "FAKE_DEVICE"
codeTuple = (codeName, deviceName)
sensor._update_callback(codeTuple)
codeName = "FAKE_CODE"
deviceName = "FAKE_DEVICE"
codeTuple = (codeName, deviceName)
sensor._update_callback(codeTuple)
assert sensor.state == codeName
assert sensor.extra_state_attributes == {kira.CONF_DEVICE: deviceName}
mock_schedule_update_ha_state.assert_called
assert sensor.state == codeName
assert sensor.extra_state_attributes == {kira.CONF_DEVICE: deviceName}