90 lines
3.4 KiB
Python
90 lines
3.4 KiB
Python
"""
|
|
test.test_util
|
|
~~~~~~~~~~~~~~
|
|
|
|
Tests Home Assistant util methods.
|
|
"""
|
|
# pylint: disable=too-many-public-methods
|
|
import unittest
|
|
from datetime import datetime
|
|
|
|
import homeassistant.util as util
|
|
|
|
|
|
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",
|
|
util.repr_helper({"test": 1}))
|
|
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"]))
|