1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 12:59:34 +00:00

Add support for Canary Flex (#13280)

Add support for Canary Flex
This commit is contained in:
Joe Lu
2018-03-30 14:38:29 -07:00
committed by Martin Hjelmare
parent f40efe0110
commit ad5a11ba3d
6 changed files with 72 additions and 19 deletions

View File

@@ -40,9 +40,9 @@ class TestCanarySensorSetup(unittest.TestCase):
def test_setup_sensors(self):
"""Test the sensor setup."""
online_device_at_home = mock_device(20, "Dining Room", True)
offline_device_at_home = mock_device(21, "Front Yard", False)
online_device_at_work = mock_device(22, "Office", True)
online_device_at_home = mock_device(20, "Dining Room", True, "Canary")
offline_device_at_home = mock_device(21, "Front Yard", False, "Canary")
online_device_at_work = mock_device(22, "Office", True, "Canary")
self.hass.data[DATA_CANARY] = Mock()
self.hass.data[DATA_CANARY].locations = [
@@ -57,7 +57,7 @@ class TestCanarySensorSetup(unittest.TestCase):
def test_temperature_sensor(self):
"""Test temperature sensor with fahrenheit."""
device = mock_device(10, "Family Room")
device = mock_device(10, "Family Room", "Canary")
location = mock_location("Home", False)
data = Mock()
@@ -69,10 +69,11 @@ class TestCanarySensorSetup(unittest.TestCase):
self.assertEqual("Home Family Room Temperature", sensor.name)
self.assertEqual("°C", sensor.unit_of_measurement)
self.assertEqual(21.12, sensor.state)
self.assertEqual("mdi:thermometer", sensor.icon)
def test_temperature_sensor_with_none_sensor_value(self):
"""Test temperature sensor with fahrenheit."""
device = mock_device(10, "Family Room")
device = mock_device(10, "Family Room", "Canary")
location = mock_location("Home", False)
data = Mock()
@@ -85,7 +86,7 @@ class TestCanarySensorSetup(unittest.TestCase):
def test_humidity_sensor(self):
"""Test humidity sensor."""
device = mock_device(10, "Family Room")
device = mock_device(10, "Family Room", "Canary")
location = mock_location("Home")
data = Mock()
@@ -97,10 +98,11 @@ class TestCanarySensorSetup(unittest.TestCase):
self.assertEqual("Home Family Room Humidity", sensor.name)
self.assertEqual("%", sensor.unit_of_measurement)
self.assertEqual(50.46, sensor.state)
self.assertEqual("mdi:water-percent", sensor.icon)
def test_air_quality_sensor_with_very_abnormal_reading(self):
"""Test air quality sensor."""
device = mock_device(10, "Family Room")
device = mock_device(10, "Family Room", "Canary")
location = mock_location("Home")
data = Mock()
@@ -112,13 +114,14 @@ class TestCanarySensorSetup(unittest.TestCase):
self.assertEqual("Home Family Room Air Quality", sensor.name)
self.assertEqual(None, sensor.unit_of_measurement)
self.assertEqual(0.4, sensor.state)
self.assertEqual("mdi:weather-windy", sensor.icon)
air_quality = sensor.device_state_attributes[ATTR_AIR_QUALITY]
self.assertEqual(STATE_AIR_QUALITY_VERY_ABNORMAL, air_quality)
def test_air_quality_sensor_with_abnormal_reading(self):
"""Test air quality sensor."""
device = mock_device(10, "Family Room")
device = mock_device(10, "Family Room", "Canary")
location = mock_location("Home")
data = Mock()
@@ -130,13 +133,14 @@ class TestCanarySensorSetup(unittest.TestCase):
self.assertEqual("Home Family Room Air Quality", sensor.name)
self.assertEqual(None, sensor.unit_of_measurement)
self.assertEqual(0.59, sensor.state)
self.assertEqual("mdi:weather-windy", sensor.icon)
air_quality = sensor.device_state_attributes[ATTR_AIR_QUALITY]
self.assertEqual(STATE_AIR_QUALITY_ABNORMAL, air_quality)
def test_air_quality_sensor_with_normal_reading(self):
"""Test air quality sensor."""
device = mock_device(10, "Family Room")
device = mock_device(10, "Family Room", "Canary")
location = mock_location("Home")
data = Mock()
@@ -148,13 +152,14 @@ class TestCanarySensorSetup(unittest.TestCase):
self.assertEqual("Home Family Room Air Quality", sensor.name)
self.assertEqual(None, sensor.unit_of_measurement)
self.assertEqual(1.0, sensor.state)
self.assertEqual("mdi:weather-windy", sensor.icon)
air_quality = sensor.device_state_attributes[ATTR_AIR_QUALITY]
self.assertEqual(STATE_AIR_QUALITY_NORMAL, air_quality)
def test_air_quality_sensor_with_none_sensor_value(self):
"""Test air quality sensor."""
device = mock_device(10, "Family Room")
device = mock_device(10, "Family Room", "Canary")
location = mock_location("Home")
data = Mock()
@@ -165,3 +170,35 @@ class TestCanarySensorSetup(unittest.TestCase):
self.assertEqual(None, sensor.state)
self.assertEqual(None, sensor.device_state_attributes)
def test_battery_sensor(self):
"""Test battery sensor."""
device = mock_device(10, "Family Room", "Canary Flex")
location = mock_location("Home")
data = Mock()
data.get_reading.return_value = 70.4567
sensor = CanarySensor(data, SENSOR_TYPES[4], location, device)
sensor.update()
self.assertEqual("Home Family Room Battery", sensor.name)
self.assertEqual("%", sensor.unit_of_measurement)
self.assertEqual(70.46, sensor.state)
self.assertEqual("mdi:battery-70", sensor.icon)
def test_wifi_sensor(self):
"""Test battery sensor."""
device = mock_device(10, "Family Room", "Canary Flex")
location = mock_location("Home")
data = Mock()
data.get_reading.return_value = -57
sensor = CanarySensor(data, SENSOR_TYPES[3], location, device)
sensor.update()
self.assertEqual("Home Family Room Wifi", sensor.name)
self.assertEqual("dBm", sensor.unit_of_measurement)
self.assertEqual(-57, sensor.state)
self.assertEqual("mdi:wifi", sensor.icon)