Pass output from task API to convey_task_result

Applying winson-c-chan's fix to upstream (Thanks Winson!)

Change-Id: Icce25f55d3053c7cebb2a993975f35d14f9efe56
Closes-Bug: 1362287
This commit is contained in:
Dmitri Zimine 2014-09-11 20:25:46 -07:00
parent 264536b8e2
commit 2df3ddd7f0
2 changed files with 13 additions and 12 deletions

View File

@ -92,10 +92,9 @@ class TasksController(rest.RestController):
def _put(self, id, task):
if db_api.task_get(id):
# TODO(rakhmerov): pass task result once it's implemented
engine = pecan.request.context['engine']
values = engine.convey_task_result(id, task.state, None)
raw_result = json.loads(task.output)
values = engine.convey_task_result(id, task.state, raw_result)
return Task.from_dict(values)

View File

@ -83,28 +83,30 @@ class TestTasksController(base.FunctionalTest):
def test_workbook_put(self):
resp = self.app.put_json(
'/v1/workbooks/my_workbook/executions/123/tasks/1',
dict(state='STOPPED'))
dict(state='STOPPED', output='{"a":"b"}'))
self.assertEqual(resp.status_int, 200)
self.assertDictEqual(UPDATED_TASK, canonize(resp.json))
@mock.patch.object(engine.EngineClient, "convey_task_result",
mock.MagicMock(return_value=UPDATED_TASK))
@mock.patch.object(engine.EngineClient, "convey_task_result")
@mock.patch.object(db_api, "task_get", base.create_mock_task(TASKS[0]))
def test_execution_put(self):
def test_execution_put(self, convey_task_result):
convey_task_result.return_value = UPDATED_TASK
resp = self.app.put_json(
'/v1/executions/123/tasks/1',
dict(state='STOPPED'))
dict(state='STOPPED', output='{"a":"b"}'))
self.assertEqual(resp.status_int, 200)
convey_task_result.called_once_with(resp.json)
self.assertDictEqual(UPDATED_TASK, canonize(resp.json))
@mock.patch.object(engine.EngineClient, "convey_task_result",
mock.MagicMock(return_value=UPDATED_TASK))
@mock.patch.object(engine.EngineClient, "convey_task_result")
@mock.patch.object(db_api, "task_get", base.create_mock_task(TASKS[0]))
def test_root_put(self):
def test_root_put(self, convey_task_result):
convey_task_result.return_value = UPDATED_TASK
resp = self.app.put_json(
'/v1/tasks/1',
dict(state='STOPPED'))
dict(state='STOPPED', output='{"a":"b"}'))
self.assertEqual(resp.status_int, 200)
convey_task_result.called_once_with(resp.json)
self.assertDictEqual(UPDATED_TASK, canonize(resp.json))
@mock.patch.object(engine.EngineClient, "convey_task_result",