"""Fixtures for Hass.io.""" import os from unittest.mock import patch, Mock import pytest from homeassistant.setup import async_setup_component from tests.common import mock_coro from . import API_PASSWORD @pytest.fixture def hassio_env(): """Fixture to inject hassio env.""" with patch.dict(os.environ, {'HASSIO': "127.0.0.1"}), \ patch('homeassistant.components.hassio.HassIO.is_connected', Mock(return_value=mock_coro( {"result": "ok", "data": {}}))), \ patch.dict(os.environ, {'HASSIO_TOKEN': "123456"}), \ patch('homeassistant.components.hassio.HassIO.' 'get_homeassistant_info', Mock(return_value=mock_coro(None))): yield @pytest.fixture def hassio_client(hassio_env, hass, test_client): """Create mock hassio http client.""" with patch('homeassistant.components.hassio.HassIO.update_hass_api', Mock(return_value=mock_coro({"result": "ok"}))), \ patch('homeassistant.components.hassio.HassIO.' 'get_homeassistant_info', Mock(return_value=mock_coro(None))): hass.loop.run_until_complete(async_setup_component(hass, 'hassio', { 'http': { 'api_password': API_PASSWORD } })) yield hass.loop.run_until_complete(test_client(hass.http.app))