Return config entry ID after creation (#22060)

pull/22077/head
Paulus Schoutsen 2019-03-15 07:41:34 -07:00 committed by GitHub
parent 3b34594aa3
commit 941f9b29dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 1 deletions

View File

@ -118,6 +118,16 @@ class ConfigManagerFlowIndexView(FlowManagerIndexView):
# pylint: disable=no-value-for-parameter
return await super().post(request)
def _prepare_result_json(self, result):
"""Convert result to JSON."""
if result['type'] != data_entry_flow.RESULT_TYPE_CREATE_ENTRY:
return super()._prepare_result_json(result)
data = result.copy()
data['result'] = data['result'].entry_id
data.pop('data')
return data
class ConfigManagerFlowResourceView(FlowManagerResourceView):
"""View to interact with the flow manager."""
@ -143,6 +153,16 @@ class ConfigManagerFlowResourceView(FlowManagerResourceView):
# pylint: disable=no-value-for-parameter
return await super().post(request, flow_id)
def _prepare_result_json(self, result):
"""Convert result to JSON."""
if result['type'] != data_entry_flow.RESULT_TYPE_CREATE_ENTRY:
return super()._prepare_result_json(result)
data = result.copy()
data['result'] = data['result'].entry_id
data.pop('data')
return data
class ConfigManagerAvailableFlowView(HomeAssistantView):
"""View to query available flows."""
@ -175,7 +195,7 @@ class OptionManagerFlowIndexView(FlowManagerIndexView):
return await super().post(request)
class OptionManagerFlowResourceView(ConfigManagerFlowResourceView):
class OptionManagerFlowResourceView(FlowManagerResourceView):
"""View to interact with the option flow manager."""
url = '/api/config/config_entries/options/flow/{flow_id}'

View File

@ -255,6 +255,10 @@ def test_create_account(hass, client):
json={'handler': 'test'})
assert resp.status == 200
entries = hass.config_entries.async_entries('test')
assert len(entries) == 1
data = yield from resp.json()
data.pop('flow_id')
assert data == {
@ -262,6 +266,7 @@ def test_create_account(hass, client):
'title': 'Test Entry',
'type': 'create_entry',
'version': 1,
'result': entries[0].entry_id,
'description': None,
'description_placeholders': None,
}
@ -317,6 +322,10 @@ def test_two_step_flow(hass, client):
'/api/config/config_entries/flow/{}'.format(flow_id),
json={'user_title': 'user-title'})
assert resp.status == 200
entries = hass.config_entries.async_entries('test')
assert len(entries) == 1
data = yield from resp.json()
data.pop('flow_id')
assert data == {
@ -324,6 +333,7 @@ def test_two_step_flow(hass, client):
'type': 'create_entry',
'title': 'user-title',
'version': 1,
'result': entries[0].entry_id,
'description': None,
'description_placeholders': None,
}