Rewrite the kira/test_init.py unittests to pytest style test functions (#42753)

This commit is contained in:
Elena Rogleva 2020-12-02 23:15:53 +02:00 committed by GitHub
parent ce056656f8
commit 7cd17dd94f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,13 +3,13 @@
import os import os
import shutil import shutil
import tempfile import tempfile
import unittest
import pytest
import homeassistant.components.kira as kira import homeassistant.components.kira as kira
from homeassistant.setup import setup_component from homeassistant.setup import async_setup_component
from tests.async_mock import MagicMock, patch from tests.async_mock import MagicMock, patch
from tests.common import get_test_home_assistant
TEST_CONFIG = { TEST_CONFIG = {
kira.DOMAIN: { kira.DOMAIN: {
@ -31,56 +31,57 @@ KIRA_CODES = """
""" """
class TestKiraSetup(unittest.TestCase): @pytest.fixture(autouse=True)
"""Test class for kira.""" def setup_comp():
# pylint: disable=invalid-name
def setUp(self):
"""Set up things to be run when tests are started.""" """Set up things to be run when tests are started."""
self.hass = get_test_home_assistant()
_base_mock = MagicMock() _base_mock = MagicMock()
pykira = _base_mock.pykira pykira = _base_mock.pykira
pykira.__file__ = "test" pykira.__file__ = "test"
self._module_patcher = patch.dict("sys.modules", {"pykira": pykira}) _module_patcher = patch.dict("sys.modules", {"pykira": pykira})
self._module_patcher.start() _module_patcher.start()
yield
_module_patcher.stop()
self.work_dir = tempfile.mkdtemp()
self.addCleanup(self.tear_down_cleanup)
def tear_down_cleanup(self): @pytest.fixture(scope="module")
"""Stop everything that was started.""" def work_dir():
self.hass.stop() """Set up temporary workdir."""
self._module_patcher.stop() work_dir = tempfile.mkdtemp()
shutil.rmtree(self.work_dir, ignore_errors=True) yield work_dir
shutil.rmtree(work_dir, ignore_errors=True)
def test_kira_empty_config(self):
async def test_kira_empty_config(hass):
"""Kira component should load a default sensor.""" """Kira component should load a default sensor."""
setup_component(self.hass, kira.DOMAIN, {}) await async_setup_component(hass, kira.DOMAIN, {kira.DOMAIN: {}})
assert len(self.hass.data[kira.DOMAIN]["sensor"]) == 1 assert len(hass.data[kira.DOMAIN]["sensor"]) == 1
def test_kira_setup(self):
async def test_kira_setup(hass):
"""Ensure platforms are loaded correctly.""" """Ensure platforms are loaded correctly."""
setup_component(self.hass, kira.DOMAIN, TEST_CONFIG) await async_setup_component(hass, kira.DOMAIN, TEST_CONFIG)
assert len(self.hass.data[kira.DOMAIN]["sensor"]) == 2 assert len(hass.data[kira.DOMAIN]["sensor"]) == 2
assert sorted(self.hass.data[kira.DOMAIN]["sensor"].keys()) == [ assert sorted(hass.data[kira.DOMAIN]["sensor"].keys()) == [
"kira", "kira",
"kira_1", "kira_1",
] ]
assert len(self.hass.data[kira.DOMAIN]["remote"]) == 2 assert len(hass.data[kira.DOMAIN]["remote"]) == 2
assert sorted(self.hass.data[kira.DOMAIN]["remote"].keys()) == [ assert sorted(hass.data[kira.DOMAIN]["remote"].keys()) == [
"kira", "kira",
"kira_1", "kira_1",
] ]
def test_kira_creates_codes(self):
async def test_kira_creates_codes(work_dir):
"""Kira module should create codes file if missing.""" """Kira module should create codes file if missing."""
code_path = os.path.join(self.work_dir, "codes.yaml") code_path = os.path.join(work_dir, "codes.yaml")
kira.load_codes(code_path) kira.load_codes(code_path)
assert os.path.exists(code_path), "Kira component didn't create codes file" assert os.path.exists(code_path), "Kira component didn't create codes file"
def test_load_codes(self):
async def test_load_codes(work_dir):
"""Kira should ignore invalid codes.""" """Kira should ignore invalid codes."""
code_path = os.path.join(self.work_dir, "codes.yaml") code_path = os.path.join(work_dir, "codes.yaml")
with open(code_path, "w") as code_file: with open(code_path, "w") as code_file:
code_file.write(KIRA_CODES) code_file.write(KIRA_CODES)
res = kira.load_codes(code_path) res = kira.load_codes(code_path)