core/tests/util/test_aiohttp.py

55 lines
1.4 KiB
Python

"""Test aiohttp request helper."""
from aiohttp import web
from homeassistant.util import aiohttp
async def test_request_json():
"""Test a JSON request."""
request = aiohttp.MockRequest(b'{"hello": 2}')
assert request.status == 200
assert await request.json() == {
'hello': 2
}
async def test_request_text():
"""Test a JSON request."""
request = aiohttp.MockRequest(b'hello', status=201)
assert request.status == 201
assert await request.text() == 'hello'
async def test_request_post_query():
"""Test a JSON request."""
request = aiohttp.MockRequest(
b'hello=2&post=true', query_string='get=true', method='POST')
assert request.method == 'POST'
assert await request.post() == {
'hello': '2',
'post': 'true'
}
assert request.query == {
'get': 'true'
}
def test_serialize_text():
"""Test serializing a text response."""
response = web.Response(status=201, text='Hello')
assert aiohttp.serialize_response(response) == {
'status': 201,
'body': b'Hello',
'headers': {'Content-Type': 'text/plain; charset=utf-8'},
}
def test_serialize_json():
"""Test serializing a JSON response."""
response = web.json_response({"how": "what"})
assert aiohttp.serialize_response(response) == {
'status': 200,
'body': b'{"how": "what"}',
'headers': {'Content-Type': 'application/json; charset=utf-8'},
}