VCR YR sensor test

This commit is contained in:
Paulus Schoutsen 2015-12-27 17:37:32 -08:00
parent ca6b957839
commit c1eaf60461
5 changed files with 49 additions and 42 deletions

View file

@ -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:

View file

@ -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

View file

@ -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'))