Skip to content

Commit

Permalink
address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
pvizeli committed Feb 4, 2019
1 parent 777a935 commit d595682
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 31 deletions.
5 changes: 3 additions & 2 deletions homeassistant/components/cloud/iot.py
Expand Up @@ -12,9 +12,10 @@
from homeassistant.components.google_assistant import smart_home as ga
from homeassistant.core import callback
from homeassistant.util.decorator import Registry
from homeassistant.util.aiohttp import MockRequest, serialize_response
from homeassistant.util.aiohttp import MockRequest
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from . import auth_api
from . import utils
from .const import MESSAGE_EXPIRATION, MESSAGE_AUTH_FAIL

HANDLERS = Registry()
Expand Down Expand Up @@ -360,7 +361,7 @@ async def async_handle_webhook(hass, cloud, payload):
response = await hass.components.webhook.async_handle_webhook(
found['webhook_id'], request)

response_dict = serialize_response(response)
response_dict = utils.aiohttp_serialize_response(response)
body = response_dict.get('body')

return {
Expand Down
13 changes: 13 additions & 0 deletions homeassistant/components/cloud/utils.py
@@ -0,0 +1,13 @@
"""Helper functions for cloud components."""
from typing import Any, Dict

from aiohttp import web


def aiohttp_serialize_response(response: web.Response) -> Dict[str, Any]:
"""Serialize an aiohttp response to a dictionary."""
return {
'status': response.status,
'body': response.text,
'headers': dict(response.headers),
}
9 changes: 0 additions & 9 deletions homeassistant/util/aiohttp.py
Expand Up @@ -42,12 +42,3 @@ async def post(self) -> 'MultiDict[str]':
async def text(self) -> str:
"""Return the body as text."""
return self._text


def serialize_response(response: web.Response) -> Dict[str, Any]:
"""Serialize an aiohttp response to a dictionary."""
return {
'status': response.status,
'body': response.text,
'headers': dict(response.headers),
}
24 changes: 24 additions & 0 deletions tests/components/cloud/test_aiohttp.py
@@ -0,0 +1,24 @@
"""Test aiohttp request helper."""
from aiohttp import web

from homeassistant.components.cloud import utils


def test_serialize_text():
"""Test serializing a text response."""
response = web.Response(status=201, text='Hello')
assert utils.aiohttp_serialize_response(response) == {
'status': 201,
'body': '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 utils.aiohttp_serialize_response(response) == {
'status': 200,
'body': '{"how": "what"}',
'headers': {'Content-Type': 'application/json; charset=utf-8'},
}
20 changes: 0 additions & 20 deletions tests/util/test_aiohttp.py
Expand Up @@ -32,23 +32,3 @@ async def test_request_post_query():
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': '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': '{"how": "what"}',
'headers': {'Content-Type': 'application/json; charset=utf-8'},
}

0 comments on commit d595682

Please sign in to comment.