From 92297a39c22460fbca47730ca866026ad90d09f3 Mon Sep 17 00:00:00 2001 From: Slavek Kabrda Date: Nov 09 2018 17:50:05 +0000 Subject: Fix API task status endpoint --- diff --git a/pagure/api/__init__.py b/pagure/api/__init__.py index b29201a..99cc56d 100644 --- a/pagure/api/__init__.py +++ b/pagure/api/__init__.py @@ -453,12 +453,12 @@ def api_task_status(taskid): Return the status of a async task """ result = pagure.lib.tasks.get_result(taskid) - if not result.ready: + if not result.ready(): output = {"ready": False, "status": result.status} else: output = { "ready": True, - "succesful": result.succesful(), + "successful": result.successful(), "status": result.status, } diff --git a/tests/test_pagure_flask_api.py b/tests/test_pagure_flask_api.py index 540fa83..f22a1e6 100644 --- a/tests/test_pagure_flask_api.py +++ b/tests/test_pagure_flask_api.py @@ -19,7 +19,7 @@ import sys import os import json -from mock import patch +from mock import patch, MagicMock sys.path.insert(0, os.path.join(os.path.dirname( os.path.abspath(__file__)), '..')) @@ -256,6 +256,30 @@ class PagureFlaskApitests(tests.SimplePagureTest): ] ) + @patch("pagure.lib.tasks.get_result") + def test_api_task_status(self, get_result): + async_result = MagicMock() + async_result.status = "running" + async_result.ready.return_value = False + get_result.return_value = async_result + output = self.app.get("/api/0/task/123abc/status/") + self.assertEqual(output.status_code, 200) + data = json.loads(output.get_data(as_text=True)) + self.assertEqual(data, {"ready": False, "status": "running"}) + + async_result = MagicMock() + async_result.status = "finished" + async_result.ready.return_value = True + async_result.successful.return_value = True + get_result.return_value = async_result + output = self.app.get("/api/0/task/123abc/status/") + self.assertEqual(output.status_code, 200) + data = json.loads(output.get_data(as_text=True)) + self.assertEqual( + data, + {"ready": True, "status": "finished", "successful": True} + ) + if __name__ == '__main__': unittest.main(verbosity=2)