mirror of
https://github.com/home-assistant/core.git
synced 2025-07-26 22:57:17 +00:00
Added tests for loader and util
This commit is contained in:
parent
b94ab32d60
commit
38b85e3ca2
@ -17,6 +17,8 @@ from datetime import datetime
|
|||||||
import requests
|
import requests
|
||||||
|
|
||||||
import homeassistant as ha
|
import homeassistant as ha
|
||||||
|
import homeassistant.loader as loader
|
||||||
|
import homeassistant.util as util
|
||||||
import homeassistant.remote as remote
|
import homeassistant.remote as remote
|
||||||
import homeassistant.components.http as http
|
import homeassistant.components.http as http
|
||||||
|
|
||||||
@ -365,6 +367,95 @@ class TestServiceRegistry(unittest.TestCase):
|
|||||||
self.services.has_service("test_domain", "test_service"))
|
self.services.has_service("test_domain", "test_service"))
|
||||||
|
|
||||||
|
|
||||||
|
class TestLoader(unittest.TestCase):
|
||||||
|
""" Test the loader module. """
|
||||||
|
def setUp(self): # pylint: disable=invalid-name
|
||||||
|
self.hass = ha.HomeAssistant()
|
||||||
|
loader.prepare(self.hass)
|
||||||
|
|
||||||
|
def test_get_component(self):
|
||||||
|
""" Test if get_component works. """
|
||||||
|
self.assertEqual(http, loader.get_component('http'))
|
||||||
|
|
||||||
|
|
||||||
|
class TestUtil(unittest.TestCase):
|
||||||
|
""" Tests util methods. """
|
||||||
|
def test_sanitize_filename(self):
|
||||||
|
""" Test sanitize_filename. """
|
||||||
|
self.assertEqual("test", util.sanitize_filename("test"))
|
||||||
|
self.assertEqual("test", util.sanitize_filename("/test"))
|
||||||
|
self.assertEqual("test", util.sanitize_filename("..test"))
|
||||||
|
self.assertEqual("test", util.sanitize_filename("\\test"))
|
||||||
|
self.assertEqual("test", util.sanitize_filename("\\../test"))
|
||||||
|
|
||||||
|
def test_sanitize_path(self):
|
||||||
|
""" Test sanitize_path. """
|
||||||
|
self.assertEqual("test/path", util.sanitize_path("test/path"))
|
||||||
|
self.assertEqual("test/path", util.sanitize_path("~test/path"))
|
||||||
|
self.assertEqual("//test/path",
|
||||||
|
util.sanitize_path("~/../test/path"))
|
||||||
|
|
||||||
|
def test_slugify(self):
|
||||||
|
""" Test slugify. """
|
||||||
|
self.assertEqual("Test", util.slugify("T-!@#$!#@$!$est"))
|
||||||
|
self.assertEqual("Test_More", util.slugify("Test More"))
|
||||||
|
self.assertEqual("Test_More", util.slugify("Test_(More)"))
|
||||||
|
|
||||||
|
def test_datetime_to_str(self):
|
||||||
|
""" Test datetime_to_str. """
|
||||||
|
self.assertEqual("12:00:00 09-07-1986",
|
||||||
|
util.datetime_to_str(datetime(1986, 7, 9, 12, 0, 0)))
|
||||||
|
|
||||||
|
def test_str_to_datetime(self):
|
||||||
|
""" Test str_to_datetime. """
|
||||||
|
self.assertEqual(datetime(1986, 7, 9, 12, 0, 0),
|
||||||
|
util.str_to_datetime("12:00:00 09-07-1986"))
|
||||||
|
|
||||||
|
def test_split_entity_id(self):
|
||||||
|
""" Test split_entity_id. """
|
||||||
|
self.assertEqual(['domain', 'object_id'],
|
||||||
|
util.split_entity_id('domain.object_id'))
|
||||||
|
|
||||||
|
def test_repr_helper(self):
|
||||||
|
""" Test repr_helper. """
|
||||||
|
self.assertEqual("A", util.repr_helper("A"))
|
||||||
|
self.assertEqual("5", util.repr_helper(5))
|
||||||
|
self.assertEqual("True", util.repr_helper(True))
|
||||||
|
self.assertEqual("test=1, more=2",
|
||||||
|
util.repr_helper({"test": 1, "more": 2}))
|
||||||
|
self.assertEqual("12:00:00 09-07-1986",
|
||||||
|
util.repr_helper(datetime(1986, 7, 9, 12, 0, 0)))
|
||||||
|
|
||||||
|
# pylint: disable=invalid-name
|
||||||
|
def test_color_RGB_to_xy(self):
|
||||||
|
""" Test color_RGB_to_xy. """
|
||||||
|
self.assertEqual((0, 0), util.color_RGB_to_xy(0, 0, 0))
|
||||||
|
self.assertEqual((0.3127159072215825, 0.3290014805066623),
|
||||||
|
util.color_RGB_to_xy(255, 255, 255))
|
||||||
|
|
||||||
|
self.assertEqual((0.15001662234042554, 0.060006648936170214),
|
||||||
|
util.color_RGB_to_xy(0, 0, 255))
|
||||||
|
|
||||||
|
self.assertEqual((0.3, 0.6), util.color_RGB_to_xy(0, 255, 0))
|
||||||
|
|
||||||
|
self.assertEqual((0.6400744994567747, 0.3299705106316933),
|
||||||
|
util.color_RGB_to_xy(255, 0, 0))
|
||||||
|
|
||||||
|
def test_convert(self):
|
||||||
|
""" Test convert. """
|
||||||
|
self.assertEqual(5, util.convert("5", int))
|
||||||
|
self.assertEqual(5.0, util.convert("5", float))
|
||||||
|
self.assertEqual(True, util.convert("True", bool))
|
||||||
|
self.assertEqual(1, util.convert("NOT A NUMBER", int, 1))
|
||||||
|
self.assertEqual(1, util.convert(None, int, 1))
|
||||||
|
|
||||||
|
def test_ensure_unique_string(self):
|
||||||
|
""" Test ensure_unique_string. """
|
||||||
|
self.assertEqual(
|
||||||
|
"Beer_3",
|
||||||
|
util.ensure_unique_string("Beer", ["Beer", "Beer_2"]))
|
||||||
|
|
||||||
|
|
||||||
class TestHTTP(unittest.TestCase):
|
class TestHTTP(unittest.TestCase):
|
||||||
""" Test the HTTP debug interface and API. """
|
""" Test the HTTP debug interface and API. """
|
||||||
|
|
||||||
@ -588,6 +679,14 @@ class TestRemoteMethods(unittest.TestCase):
|
|||||||
|
|
||||||
cls.api = remote.API("127.0.0.1", API_PASSWORD)
|
cls.api = remote.API("127.0.0.1", API_PASSWORD)
|
||||||
|
|
||||||
|
def test_validate_api(self):
|
||||||
|
""" Test Python API validate_api. """
|
||||||
|
self.assertEqual(remote.APIStatus.OK, remote.validate_api(self.api))
|
||||||
|
|
||||||
|
self.assertEqual(remote.APIStatus.INVALID_PASSWORD,
|
||||||
|
remote.validate_api(
|
||||||
|
remote.API("127.0.0.1", API_PASSWORD + "A")))
|
||||||
|
|
||||||
def test_get_event_listeners(self):
|
def test_get_event_listeners(self):
|
||||||
""" Test Python API get_event_listeners. """
|
""" Test Python API get_event_listeners. """
|
||||||
local_data = self.hass.bus.listeners
|
local_data = self.hass.bus.listeners
|
||||||
@ -677,6 +776,12 @@ class TestRemoteClasses(unittest.TestCase):
|
|||||||
cls.hass = ensure_homeassistant_started()
|
cls.hass = ensure_homeassistant_started()
|
||||||
cls.slave = ensure_slave_started()
|
cls.slave = ensure_slave_started()
|
||||||
|
|
||||||
|
def test_home_assistant_init(self):
|
||||||
|
""" Test HomeAssistant init. """
|
||||||
|
self.assertRaises(
|
||||||
|
ha.HomeAssistantError, remote.HomeAssistant,
|
||||||
|
remote.API('127.0.0.1', API_PASSWORD + 'A', 8124))
|
||||||
|
|
||||||
def test_statemachine_init(self):
|
def test_statemachine_init(self):
|
||||||
""" Tests if remote.StateMachine copies all states on init. """
|
""" Tests if remote.StateMachine copies all states on init. """
|
||||||
self.assertEqual(len(self.hass.states.all()),
|
self.assertEqual(len(self.hass.states.all()),
|
||||||
|
@ -24,13 +24,13 @@ def sanitize_filename(filename):
|
|||||||
|
|
||||||
|
|
||||||
def sanitize_path(path):
|
def sanitize_path(path):
|
||||||
""" Sanitizes a path by removing .. / and \\. """
|
""" Sanitizes a path by removing ~ and .. """
|
||||||
return RE_SANITIZE_PATH.sub("", path)
|
return RE_SANITIZE_PATH.sub("", path)
|
||||||
|
|
||||||
|
|
||||||
def slugify(text):
|
def slugify(text):
|
||||||
""" Slugifies a given text. """
|
""" Slugifies a given text. """
|
||||||
text = text.strip().replace(" ", "_")
|
text = text.replace(" ", "_")
|
||||||
|
|
||||||
return RE_SLUGIFY.sub("", text)
|
return RE_SLUGIFY.sub("", text)
|
||||||
|
|
||||||
@ -76,6 +76,9 @@ def repr_helper(inp):
|
|||||||
# pylint: disable=invalid-name
|
# pylint: disable=invalid-name
|
||||||
def color_RGB_to_xy(R, G, B):
|
def color_RGB_to_xy(R, G, B):
|
||||||
""" Convert from RGB color to XY color. """
|
""" Convert from RGB color to XY color. """
|
||||||
|
if R + G + B == 0:
|
||||||
|
return 0, 0
|
||||||
|
|
||||||
var_R = (R / 255.)
|
var_R = (R / 255.)
|
||||||
var_G = (G / 255.)
|
var_G = (G / 255.)
|
||||||
var_B = (B / 255.)
|
var_B = (B / 255.)
|
||||||
@ -124,7 +127,7 @@ def ensure_unique_string(preferred_string, current_strings):
|
|||||||
|
|
||||||
tries = 1
|
tries = 1
|
||||||
|
|
||||||
while preferred_string in current_strings:
|
while string in current_strings:
|
||||||
tries += 1
|
tries += 1
|
||||||
string = "{}_{}".format(preferred_string, tries)
|
string = "{}_{}".format(preferred_string, tries)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user