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:
return
try:
response = requests.get(self._url)
with requests.Session() as sess:
response = sess.get(self._url)
except requests.RequestException:
return
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,39 +4,46 @@ tests.components.sensor.test_yr
Tests Yr sensor.
"""
import unittest
from unittest.mock import patch
import pytest
import homeassistant.core as ha
import homeassistant.components.sensor as sensor
class TestSensorYr(unittest.TestCase):
@pytest.mark.usefixtures('betamax_session')
class TestSensorYr:
""" Test the Yr sensor. """
def setUp(self): # pylint: disable=invalid-name
def setup_method(self, method):
self.hass = ha.HomeAssistant()
self.hass.config.latitude = 32.87336
self.hass.config.longitude = 117.22743
def tearDown(self): # pylint: disable=invalid-name
def teardown_method(self, method):
""" Stop down stuff we started. """
self.hass.stop()
def test_default_setup(self):
self.assertTrue(sensor.setup(self.hass, {
def test_default_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,
}
}))
})
state = self.hass.states.get('sensor.yr_symbol')
self.assertTrue(state.state.isnumeric())
self.assertEqual(None,
state.attributes.get('unit_of_measurement'))
assert state.state.isnumeric()
assert state.attributes.get('unit_of_measurement') is None
def test_custom_setup(self):
self.assertTrue(sensor.setup(self.hass, {
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,
@ -48,26 +55,19 @@ class TestSensorYr(unittest.TestCase):
'windSpeed'
}
}
}))
state = self.hass.states.get('sensor.yr_symbol')
self.assertEqual(None, state)
})
state = self.hass.states.get('sensor.yr_pressure')
self.assertEqual('hPa',
state.attributes.get('unit_of_measurement'))
assert 'hPa', state.attributes.get('unit_of_measurement')
state = self.hass.states.get('sensor.yr_wind_direction')
self.assertEqual('°',
state.attributes.get('unit_of_measurement'))
assert '°', state.attributes.get('unit_of_measurement')
state = self.hass.states.get('sensor.yr_humidity')
self.assertEqual('%',
state.attributes.get('unit_of_measurement'))
assert '%', state.attributes.get('unit_of_measurement')
state = self.hass.states.get('sensor.yr_fog')
self.assertEqual('%',
state.attributes.get('unit_of_measurement'))
assert '%', state.attributes.get('unit_of_measurement')
state = self.hass.states.get('sensor.yr_wind_speed')
self.assertEqual('m/s',
state.attributes.get('unit_of_measurement'))
assert 'm/s', state.attributes.get('unit_of_measurement')