From 632256fae2ca8605cf97fd882ec0febaed8cad1b Mon Sep 17 00:00:00 2001 From: Gianluca Barbaro Date: Wed, 19 Apr 2017 18:26:44 +0200 Subject: [PATCH] Mqtt camera test (#7175) * mock mqtt * minor fix * minor fix * minor fix --- tests/components/camera/test_mqtt.py | 58 ++++++++++++++++++---------- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/tests/components/camera/test_mqtt.py b/tests/components/camera/test_mqtt.py index b79f7245f28..802d29a510a 100644 --- a/tests/components/camera/test_mqtt.py +++ b/tests/components/camera/test_mqtt.py @@ -1,31 +1,47 @@ """The tests for mqtt camera component.""" import asyncio - -import pytest +import unittest from homeassistant.setup import async_setup_component -import homeassistant.components.mqtt as mqtt + +from tests.common import ( + get_test_home_assistant, mock_mqtt_component, get_test_instance_port) + +import requests + +SERVER_PORT = get_test_instance_port() +HTTP_BASE_URL = 'http://127.0.0.1:{}'.format(SERVER_PORT) -@pytest.mark.skip -@asyncio.coroutine -def test_run_camera_setup(hass, test_client): - """Test that it fetches the given dispatcher data.""" - topic = 'test/camera' - yield from async_setup_component(hass, 'camera', { - 'camera': { - 'platform': 'mqtt', - 'topic': topic, - 'name': 'Test Camera', - }}) +class TestComponentsMQTTCamera(unittest.TestCase): + """Test MQTT camera platform.""" - client = yield from test_client(hass.http.app) + def setUp(self): # pylint: disable=invalid-name + """Setup things to be run when tests are started.""" + self.hass = get_test_home_assistant() + self.mock_mqtt = mock_mqtt_component(self.hass) - mqtt.publish(hass, topic, 0xFFD8FF) - yield from hass.async_block_till_done() + def tearDown(self): # pylint: disable=invalid-name + """Stop everything that was started.""" + self.hass.stop() - resp = yield from client.get('/api/camera_proxy/camera.test_camera') + @asyncio.coroutine + def test_run_camera_setup(self): + """Test that it fetches the given payload.""" + topic = 'test/camera' + yield from async_setup_component(self.hass, 'camera', { + 'camera': { + 'platform': 'mqtt', + 'topic': topic, + 'name': 'Test Camera', + }}) - assert resp.status == 200 - body = yield from resp.text() - assert body == '16767231' + self.mock_mqtt.publish(self.hass, topic, 0xFFD8FF) + yield from self.hass.async_block_till_done() + + resp = requests.get(HTTP_BASE_URL + + '/api/camera_proxy/camera.test_camera') + + assert resp.status_code == 200 + body = yield from resp.text + assert body == '16767231'