mirror of
https://github.com/home-assistant/core.git
synced 2026-09-24 07:25:52 -05:00
Added new Washington State DOT sensor. (#5496)
* Added new Washington State DOT sensor. * Minor changes from review for WSDOT. * Update wsdot.py
This commit is contained in:
committed by
Paulus Schoutsen
parent
a09a772f43
commit
43e46154c6
@@ -0,0 +1,64 @@
|
||||
"""The tests for the WSDOT platform."""
|
||||
import re
|
||||
import unittest
|
||||
from datetime import timedelta, datetime, timezone
|
||||
|
||||
import requests_mock
|
||||
|
||||
from homeassistant.components.sensor import wsdot
|
||||
from homeassistant.components.sensor.wsdot import (
|
||||
WashingtonStateTravelTimeSensor, ATTR_DESCRIPTION,
|
||||
ATTR_TIME_UPDATED, CONF_API_KEY, CONF_NAME,
|
||||
CONF_ID, CONF_TRAVEL_TIMES, SCAN_INTERVAL)
|
||||
from homeassistant.bootstrap import setup_component
|
||||
from tests.common import load_fixture, get_test_home_assistant
|
||||
|
||||
|
||||
class TestWSDOT(unittest.TestCase):
|
||||
"""Test the WSDOT platform."""
|
||||
|
||||
def add_entities(self, new_entities, update_before_add=False):
|
||||
"""Mock add entities."""
|
||||
if update_before_add:
|
||||
for entity in new_entities:
|
||||
entity.update()
|
||||
|
||||
for entity in new_entities:
|
||||
self.entities.append(entity)
|
||||
|
||||
def setUp(self):
|
||||
"""Initialize values for this testcase class."""
|
||||
self.hass = get_test_home_assistant()
|
||||
self.config = {
|
||||
CONF_API_KEY: 'foo',
|
||||
SCAN_INTERVAL: timedelta(seconds=120),
|
||||
CONF_TRAVEL_TIMES: [{
|
||||
CONF_ID: 96,
|
||||
CONF_NAME: 'I90 EB'}],
|
||||
}
|
||||
self.entities = []
|
||||
|
||||
def tearDown(self): # pylint: disable=invalid-name
|
||||
"""Stop everything that was started."""
|
||||
self.hass.stop()
|
||||
|
||||
def test_setup_with_config(self):
|
||||
"""Test the platform setup with configuration."""
|
||||
self.assertTrue(
|
||||
setup_component(self.hass, 'sensor', {'wsdot': self.config}))
|
||||
|
||||
@requests_mock.Mocker()
|
||||
def test_setup(self, mock_req):
|
||||
"""Test for operational WSDOT sensor with proper attributes."""
|
||||
uri = re.compile(WashingtonStateTravelTimeSensor.RESOURCE + '*')
|
||||
mock_req.get(uri, text=load_fixture('wsdot.json'))
|
||||
wsdot.setup_platform(self.hass, self.config, self.add_entities)
|
||||
self.assertEqual(len(self.entities), 1)
|
||||
sensor = self.entities[0]
|
||||
self.assertEqual(sensor.name, 'I90 EB')
|
||||
self.assertEqual(sensor.state, 11)
|
||||
self.assertEqual(sensor.device_state_attributes[ATTR_DESCRIPTION],
|
||||
'Downtown Seattle to Downtown Bellevue via I-90')
|
||||
self.assertEqual(sensor.device_state_attributes[ATTR_TIME_UPDATED],
|
||||
datetime(2017, 1, 21, 15, 10,
|
||||
tzinfo=timezone(timedelta(hours=-8))))
|
||||
Reference in New Issue
Block a user