async def test_services_execute_args(story, async_mock): handler = async_mock(return_value='output') Services.register_internal('my_service', 'my_command', {'arg1': {'type': 'string'}}, 'any', handler) assert Services.is_internal('my_service', 'my_command') is True line = { Line.service: 'my_service', Line.command: 'my_command', Line.method: 'execute', 'args': [ { '$OBJECT': 'argument', 'name': 'arg1', 'argument': { '$OBJECT': 'string', 'string': 'Hello world!' } } ] } assert await Services.execute(story, line) == 'output' handler.mock.assert_called_with(story=story, line=line, resolved_args={'arg1': 'Hello world!'})
async def test_services_execute_execute_external(patch, story, async_mock): patch.object(Services, 'execute_external', new=async_mock()) assert Services.is_internal('foo_service', 'blah') is False line = { Line.service: 'foo_service', Line.command: 'foo_command', Line.method: 'execute' } assert await Services.execute(story, line) \ == await Services.execute_external()
async def test_services_execute_execute_internal(story, async_mock): handler = async_mock(return_value='output') Services.register_internal('my_service', 'my_command', {}, 'any', handler) assert Services.is_internal('my_service', 'my_command') is True line = { Line.service: 'my_service', Line.command: 'my_command', Line.method: 'execute' } assert await Services.execute(story, line) == 'output'