Add context to service call event (#21181)

This commit is contained in:
Paulus Schoutsen 2019-02-18 13:07:44 -08:00 committed by GitHub
parent 463c4ae5c9
commit d2fea76fd7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 3 deletions

View file

@ -1117,7 +1117,7 @@ class ServiceRegistry:
ATTR_DOMAIN: domain.lower(),
ATTR_SERVICE: service.lower(),
ATTR_SERVICE_DATA: service_data,
})
}, context=context)
if not blocking:
self._hass.async_create_task(

View file

@ -1013,6 +1013,7 @@ def test_track_task_functions(loop):
async def test_service_executed_with_subservices(hass):
"""Test we block correctly till all services done."""
calls = async_mock_service(hass, 'test', 'inner')
context = ha.Context()
async def handle_outer(call):
"""Handle outer service call."""
@ -1026,11 +1027,13 @@ async def test_service_executed_with_subservices(hass):
hass.services.async_register('test', 'outer', handle_outer)
await hass.services.async_call('test', 'outer', blocking=True)
await hass.services.async_call('test', 'outer', blocking=True,
context=context)
assert len(calls) == 4
assert [call.service for call in calls] == [
'outer', 'inner', 'inner', 'outer']
assert all(call.context is context for call in calls)
async def test_service_call_event_contains_original_data(hass):
@ -1047,11 +1050,14 @@ async def test_service_call_event_contains_original_data(hass):
'number': vol.Coerce(int)
}))
context = ha.Context()
await hass.services.async_call('test', 'service', {
'number': '23'
}, blocking=True)
}, blocking=True, context=context)
await hass.async_block_till_done()
assert len(events) == 1
assert events[0].data['service_data']['number'] == '23'
assert events[0].context is context
assert len(calls) == 1
assert calls[0].data['number'] == 23
assert calls[0].context is context