add test for mqtt+json switch

This commit is contained in:
Oliver van Porten 2015-11-20 23:50:46 +01:00
parent 820b2a31b3
commit 427944cc44
2 changed files with 29 additions and 2 deletions

View file

@ -56,5 +56,4 @@ class TestSensorMQTT(unittest.TestCase):
state = self.hass.states.get('sensor.test') state = self.hass.states.get('sensor.test')
self.assertEqual('100', state.state) self.assertEqual('100', state.state)
self.assertEqual('fav unit',
state.attributes.get('unit_of_measurement'))

View file

@ -80,3 +80,31 @@ class TestSensorMQTT(unittest.TestCase):
self.mock_publish.mock_calls[-1][1]) self.mock_publish.mock_calls[-1][1])
state = self.hass.states.get('switch.test') state = self.hass.states.get('switch.test')
self.assertEqual(STATE_OFF, state.state) self.assertEqual(STATE_OFF, state.state)
def test_controlling_state_via_topic_and_json_message(self):
self.assertTrue(switch.setup(self.hass, {
'switch': {
'platform': 'mqtt',
'name': 'test',
'state_topic': 'state-topic',
'command_topic': 'command-topic',
'payload_on': 'beer on',
'payload_off': 'beer off',
'state_format': 'json:val'
}
}))
state = self.hass.states.get('switch.test')
self.assertEqual(STATE_OFF, state.state)
fire_mqtt_message(self.hass, 'state-topic', '{"val":"beer on"}')
self.hass.pool.block_till_done()
state = self.hass.states.get('switch.test')
self.assertEqual(STATE_ON, state.state)
fire_mqtt_message(self.hass, 'state-topic', '{"val":"beer off"}')
self.hass.pool.block_till_done()
state = self.hass.states.get('switch.test')
self.assertEqual(STATE_OFF, state.state)