core/tests/helpers/test_aiohttp_client.py

82 lines
2.6 KiB
Python

"""Test the aiohttp client helper."""
import unittest
import aiohttp
import homeassistant.helpers.aiohttp_client as client
from homeassistant.util.async import run_callback_threadsafe
from tests.common import get_test_home_assistant
class TestHelpersAiohttpClient(unittest.TestCase):
"""Test homeassistant.helpers.aiohttp_client module."""
def setup_method(self, method):
"""Setup things to be run when tests are started."""
self.hass = get_test_home_assistant()
def teardown_method(self, method):
"""Stop everything that was started."""
self.hass.stop()
def test_get_clientsession_with_ssl(self):
"""Test init clientsession with ssl."""
run_callback_threadsafe(self.hass.loop, client.async_get_clientsession,
self.hass).result()
assert isinstance(
self.hass.data[client.DATA_CLIENTSESSION], aiohttp.ClientSession)
assert isinstance(
self.hass.data[client.DATA_CONNECTOR], aiohttp.TCPConnector)
def test_get_clientsession_without_ssl(self):
"""Test init clientsession without ssl."""
run_callback_threadsafe(self.hass.loop, client.async_get_clientsession,
self.hass, False).result()
assert isinstance(
self.hass.data[client.DATA_CLIENTSESSION_NOTVERIFY],
aiohttp.ClientSession)
assert isinstance(
self.hass.data[client.DATA_CONNECTOR_NOTVERIFY],
aiohttp.TCPConnector)
def test_create_clientsession_with_ssl_and_cookies(self):
"""Test create clientsession with ssl."""
def _async_helper():
return client.async_create_clientsession(
self.hass,
cookies={'bla': True}
)
session = run_callback_threadsafe(
self.hass.loop,
_async_helper,
).result()
assert isinstance(
session, aiohttp.ClientSession)
assert isinstance(
self.hass.data[client.DATA_CONNECTOR], aiohttp.TCPConnector)
def test_create_clientsession_without_ssl_and_cookies(self):
"""Test create clientsession without ssl."""
def _async_helper():
return client.async_create_clientsession(
self.hass,
False,
cookies={'bla': True}
)
session = run_callback_threadsafe(
self.hass.loop,
_async_helper,
).result()
assert isinstance(
session, aiohttp.ClientSession)
assert isinstance(
self.hass.data[client.DATA_CONNECTOR_NOTVERIFY],
aiohttp.TCPConnector)