Return config entry ID after creation (#22060)
parent
3b34594aa3
commit
941f9b29dc
|
@ -118,6 +118,16 @@ class ConfigManagerFlowIndexView(FlowManagerIndexView):
|
||||||
# pylint: disable=no-value-for-parameter
|
# pylint: disable=no-value-for-parameter
|
||||||
return await super().post(request)
|
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):
|
class ConfigManagerFlowResourceView(FlowManagerResourceView):
|
||||||
"""View to interact with the flow manager."""
|
"""View to interact with the flow manager."""
|
||||||
|
@ -143,6 +153,16 @@ class ConfigManagerFlowResourceView(FlowManagerResourceView):
|
||||||
# pylint: disable=no-value-for-parameter
|
# pylint: disable=no-value-for-parameter
|
||||||
return await super().post(request, flow_id)
|
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):
|
class ConfigManagerAvailableFlowView(HomeAssistantView):
|
||||||
"""View to query available flows."""
|
"""View to query available flows."""
|
||||||
|
@ -175,7 +195,7 @@ class OptionManagerFlowIndexView(FlowManagerIndexView):
|
||||||
return await super().post(request)
|
return await super().post(request)
|
||||||
|
|
||||||
|
|
||||||
class OptionManagerFlowResourceView(ConfigManagerFlowResourceView):
|
class OptionManagerFlowResourceView(FlowManagerResourceView):
|
||||||
"""View to interact with the option flow manager."""
|
"""View to interact with the option flow manager."""
|
||||||
|
|
||||||
url = '/api/config/config_entries/options/flow/{flow_id}'
|
url = '/api/config/config_entries/options/flow/{flow_id}'
|
||||||
|
|
|
@ -255,6 +255,10 @@ def test_create_account(hass, client):
|
||||||
json={'handler': 'test'})
|
json={'handler': 'test'})
|
||||||
|
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
|
|
||||||
|
entries = hass.config_entries.async_entries('test')
|
||||||
|
assert len(entries) == 1
|
||||||
|
|
||||||
data = yield from resp.json()
|
data = yield from resp.json()
|
||||||
data.pop('flow_id')
|
data.pop('flow_id')
|
||||||
assert data == {
|
assert data == {
|
||||||
|
@ -262,6 +266,7 @@ def test_create_account(hass, client):
|
||||||
'title': 'Test Entry',
|
'title': 'Test Entry',
|
||||||
'type': 'create_entry',
|
'type': 'create_entry',
|
||||||
'version': 1,
|
'version': 1,
|
||||||
|
'result': entries[0].entry_id,
|
||||||
'description': None,
|
'description': None,
|
||||||
'description_placeholders': None,
|
'description_placeholders': None,
|
||||||
}
|
}
|
||||||
|
@ -317,6 +322,10 @@ def test_two_step_flow(hass, client):
|
||||||
'/api/config/config_entries/flow/{}'.format(flow_id),
|
'/api/config/config_entries/flow/{}'.format(flow_id),
|
||||||
json={'user_title': 'user-title'})
|
json={'user_title': 'user-title'})
|
||||||
assert resp.status == 200
|
assert resp.status == 200
|
||||||
|
|
||||||
|
entries = hass.config_entries.async_entries('test')
|
||||||
|
assert len(entries) == 1
|
||||||
|
|
||||||
data = yield from resp.json()
|
data = yield from resp.json()
|
||||||
data.pop('flow_id')
|
data.pop('flow_id')
|
||||||
assert data == {
|
assert data == {
|
||||||
|
@ -324,6 +333,7 @@ def test_two_step_flow(hass, client):
|
||||||
'type': 'create_entry',
|
'type': 'create_entry',
|
||||||
'title': 'user-title',
|
'title': 'user-title',
|
||||||
'version': 1,
|
'version': 1,
|
||||||
|
'result': entries[0].entry_id,
|
||||||
'description': None,
|
'description': None,
|
||||||
'description_placeholders': None,
|
'description_placeholders': None,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue