VCR YR sensor test
This commit is contained in:
parent
ca6b957839
commit
c1eaf60461
5 changed files with 49 additions and 42 deletions
|
@ -206,7 +206,8 @@ class YrData(object):
|
||||||
if self._nextrun is not None and dt_util.utcnow() <= self._nextrun:
|
if self._nextrun is not None and dt_util.utcnow() <= self._nextrun:
|
||||||
return
|
return
|
||||||
try:
|
try:
|
||||||
response = requests.get(self._url)
|
with requests.Session() as sess:
|
||||||
|
response = sess.get(self._url)
|
||||||
except requests.RequestException:
|
except requests.RequestException:
|
||||||
return
|
return
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
import betamax
|
||||||
|
|
||||||
|
with betamax.Betamax.configure() as config:
|
||||||
|
config.cassette_library_dir = 'tests/cassettes'
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -4,70 +4,70 @@ tests.components.sensor.test_yr
|
||||||
|
|
||||||
Tests Yr sensor.
|
Tests Yr sensor.
|
||||||
"""
|
"""
|
||||||
import unittest
|
from unittest.mock import patch
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
import homeassistant.core as ha
|
import homeassistant.core as ha
|
||||||
import homeassistant.components.sensor as sensor
|
import homeassistant.components.sensor as sensor
|
||||||
|
|
||||||
|
|
||||||
class TestSensorYr(unittest.TestCase):
|
@pytest.mark.usefixtures('betamax_session')
|
||||||
|
class TestSensorYr:
|
||||||
""" Test the Yr sensor. """
|
""" Test the Yr sensor. """
|
||||||
|
|
||||||
def setUp(self): # pylint: disable=invalid-name
|
def setup_method(self, method):
|
||||||
self.hass = ha.HomeAssistant()
|
self.hass = ha.HomeAssistant()
|
||||||
self.hass.config.latitude = 32.87336
|
self.hass.config.latitude = 32.87336
|
||||||
self.hass.config.longitude = 117.22743
|
self.hass.config.longitude = 117.22743
|
||||||
|
|
||||||
def tearDown(self): # pylint: disable=invalid-name
|
def teardown_method(self, method):
|
||||||
""" Stop down stuff we started. """
|
""" Stop down stuff we started. """
|
||||||
self.hass.stop()
|
self.hass.stop()
|
||||||
|
|
||||||
def test_default_setup(self):
|
def test_default_setup(self, betamax_session):
|
||||||
self.assertTrue(sensor.setup(self.hass, {
|
with patch('homeassistant.components.sensor.yr.requests.Session',
|
||||||
'sensor': {
|
return_value=betamax_session):
|
||||||
'platform': 'yr',
|
assert sensor.setup(self.hass, {
|
||||||
'elevation': 0,
|
'sensor': {
|
||||||
}
|
'platform': 'yr',
|
||||||
}))
|
'elevation': 0,
|
||||||
state = self.hass.states.get('sensor.yr_symbol')
|
|
||||||
|
|
||||||
self.assertTrue(state.state.isnumeric())
|
|
||||||
self.assertEqual(None,
|
|
||||||
state.attributes.get('unit_of_measurement'))
|
|
||||||
|
|
||||||
def test_custom_setup(self):
|
|
||||||
self.assertTrue(sensor.setup(self.hass, {
|
|
||||||
'sensor': {
|
|
||||||
'platform': 'yr',
|
|
||||||
'elevation': 0,
|
|
||||||
'monitored_conditions': {
|
|
||||||
'pressure',
|
|
||||||
'windDirection',
|
|
||||||
'humidity',
|
|
||||||
'fog',
|
|
||||||
'windSpeed'
|
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
}))
|
|
||||||
state = self.hass.states.get('sensor.yr_symbol')
|
state = self.hass.states.get('sensor.yr_symbol')
|
||||||
self.assertEqual(None, state)
|
|
||||||
|
assert state.state.isnumeric()
|
||||||
|
assert state.attributes.get('unit_of_measurement') is None
|
||||||
|
|
||||||
|
def test_custom_setup(self, betamax_session):
|
||||||
|
with patch('homeassistant.components.sensor.yr.requests.Session',
|
||||||
|
return_value=betamax_session):
|
||||||
|
assert sensor.setup(self.hass, {
|
||||||
|
'sensor': {
|
||||||
|
'platform': 'yr',
|
||||||
|
'elevation': 0,
|
||||||
|
'monitored_conditions': {
|
||||||
|
'pressure',
|
||||||
|
'windDirection',
|
||||||
|
'humidity',
|
||||||
|
'fog',
|
||||||
|
'windSpeed'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
state = self.hass.states.get('sensor.yr_pressure')
|
state = self.hass.states.get('sensor.yr_pressure')
|
||||||
self.assertEqual('hPa',
|
assert 'hPa', state.attributes.get('unit_of_measurement')
|
||||||
state.attributes.get('unit_of_measurement'))
|
|
||||||
|
|
||||||
state = self.hass.states.get('sensor.yr_wind_direction')
|
state = self.hass.states.get('sensor.yr_wind_direction')
|
||||||
self.assertEqual('°',
|
assert '°', state.attributes.get('unit_of_measurement')
|
||||||
state.attributes.get('unit_of_measurement'))
|
|
||||||
|
|
||||||
state = self.hass.states.get('sensor.yr_humidity')
|
state = self.hass.states.get('sensor.yr_humidity')
|
||||||
self.assertEqual('%',
|
assert '%', state.attributes.get('unit_of_measurement')
|
||||||
state.attributes.get('unit_of_measurement'))
|
|
||||||
|
|
||||||
state = self.hass.states.get('sensor.yr_fog')
|
state = self.hass.states.get('sensor.yr_fog')
|
||||||
self.assertEqual('%',
|
assert '%', state.attributes.get('unit_of_measurement')
|
||||||
state.attributes.get('unit_of_measurement'))
|
|
||||||
|
|
||||||
state = self.hass.states.get('sensor.yr_wind_speed')
|
state = self.hass.states.get('sensor.yr_wind_speed')
|
||||||
self.assertEqual('m/s',
|
assert 'm/s', state.attributes.get('unit_of_measurement')
|
||||||
state.attributes.get('unit_of_measurement'))
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue