47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
"""The tests for mqtt camera component."""
|
|
import asyncio
|
|
import unittest
|
|
|
|
from homeassistant.setup import async_setup_component
|
|
|
|
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)
|
|
|
|
|
|
class TestComponentsMQTTCamera(unittest.TestCase):
|
|
"""Test MQTT camera platform."""
|
|
|
|
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)
|
|
|
|
def tearDown(self): # pylint: disable=invalid-name
|
|
"""Stop everything that was started."""
|
|
self.hass.stop()
|
|
|
|
@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',
|
|
}})
|
|
|
|
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'
|