Use flask jsonify method to return json result 09/25209/1
authorchenjiankun <chenjiankun1@huawei.com>
Wed, 30 Nov 2016 07:28:36 +0000 (07:28 +0000)
committerchenjiankun <chenjiankun1@huawei.com>
Wed, 30 Nov 2016 07:28:36 +0000 (07:28 +0000)
JIRA: YARDSTICK-433

Python json lib is very hard to parse when transport via network.
Flask jsonfiy is more easier to use.

Change-Id: I2afd5238d65bc474170c57d2f9307dc881ea4990
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
api/actions/test.py
api/utils/common.py
tests/unit/api/actions/test_env.py [deleted file]
tests/unit/api/actions/test_result.py [deleted file]
tests/unit/api/actions/test_test.py [deleted file]
tests/unit/api/test_views.py [deleted file]
tests/unit/api/utils/test_common.py
tests/unit/api/utils/test_daemonthread.py [deleted file]

index b1dc212..fda0ffd 100644 (file)
@@ -7,7 +7,6 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 import uuid
-import json
 import os
 import logging
 
@@ -22,12 +21,7 @@ def runTestCase(args):
         opts = args.get('opts', {})
         testcase = args['testcase']
     except KeyError:
-        logger.error('Lack of testcase argument')
-        result = {
-            'status': 'error',
-            'message': 'need testcase name'
-        }
-        return json.dumps(result)
+        return common_utils.error_handler('Lack of testcase argument')
 
     testcase = os.path.join(conf.TEST_CASE_PATH,
                             conf.TEST_CASE_PRE + testcase + '.yaml')
@@ -41,8 +35,4 @@ def runTestCase(args):
     logger.debug('Start to execute command list')
     common_utils.exec_command_task(command_list, task_id)
 
-    result = {
-        'status': 'success',
-        'task_id': task_id
-    }
-    return json.dumps(result)
+    return common_utils.result_handler('success', task_id)
index 09cfc04..e3e64a7 100644 (file)
@@ -8,7 +8,8 @@
 ##############################################################################
 import collections
 import logging
-import json
+
+from flask import jsonify
 
 from api.utils.daemonthread import DaemonThread
 from yardstick.cmd.cli import YardstickCLI
@@ -50,7 +51,7 @@ def error_handler(message):
         'status': 'error',
         'message': message
     }
-    return json.dumps(result)
+    return jsonify(result)
 
 
 def result_handler(status, data):
@@ -58,7 +59,7 @@ def result_handler(status, data):
         'status': status,
         'result': data
     }
-    return json.dumps(result)
+    return jsonify(result)
 
 
 class Url(object):
diff --git a/tests/unit/api/actions/test_env.py b/tests/unit/api/actions/test_env.py
deleted file mode 100644 (file)
index e674d73..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from api.actions import env
-
-
-class CreateInfluxDBContainerTestCase(unittest.TestCase):
-
-    @mock.patch('api.actions.env._create_influxdb_container')
-    def test_create_influxdb_container(self, mock_create_container):
-        env.createInfluxDBContainer({})
-        mock_create_container.assert_called_with()
-
-
-class CreateInfluxdbContainerTestCase(unittest.TestCase):
-
-    @mock.patch('api.actions.env.Client')
-    def test_create_influxdb_container(self, mock_influx_client):
-        env._create_influxdb_container()
-        self.assertFalse(mock_influx_client()._create_container.called)
-
-
-class ConfigInfluxdbTestCase(unittest.TestCase):
-
-    @mock.patch('api.actions.env.influx.get_data_db_client')
-    def test_config_influxdb(self, mock_influx_client):
-        env._config_influxdb()
-        mock_influx_client.assert_called_with()
-
-
-class ConfigOutputFile(unittest.TestCase):
-
-    def test_config_output_file(self):
-        pass
-
-
-def main():
-    unittest.main()
-
-
-if __name__ == '__main__':
-    main()
diff --git a/tests/unit/api/actions/test_result.py b/tests/unit/api/actions/test_result.py
deleted file mode 100644 (file)
index 1686319..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import json
-
-from api.actions import result
-
-
-class GetResultTestCase(unittest.TestCase):
-
-    def test_getResult_with_no_taskid_arg(self):
-        args = {}
-        output = json.loads(result.getResult(args))
-
-        self.assertEqual('error', output['status'])
-
-
-def main():
-    unittest.main()
-
-
-if __name__ == '__main__':
-    main()
diff --git a/tests/unit/api/actions/test_test.py b/tests/unit/api/actions/test_test.py
deleted file mode 100644 (file)
index 7ebe9fc..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import json
-
-from api.actions import test
-
-
-class RunTestCase(unittest.TestCase):
-
-    def test_runTestCase_with_no_testcase_arg(self):
-        args = {}
-        output = json.loads(test.runTestCase(args))
-
-        self.assertEqual('error', output['status'])
-
-
-def main():
-    unittest.main()
-
-
-if __name__ == '__main__':
-    main()
diff --git a/tests/unit/api/test_views.py b/tests/unit/api/test_views.py
deleted file mode 100644 (file)
index b835567..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-import json
-
-from api.views import Test
-from api.views import Result
-from api.views import Env
-
-
-class TestTestCase(unittest.TestCase):
-
-    @mock.patch('api.views.request')
-    def test_post(self, mock_request):
-        mock_request.json.get.side_effect = ['hello', {}]
-
-        result = json.loads(Test().post())
-
-        self.assertEqual('error', result['status'])
-
-
-class ResultTestCase(unittest.TestCase):
-
-    @mock.patch('api.views.request')
-    def test_get(self, mock_request):
-        mock_request.args.get.return_value = 'hello'
-
-        print Result().get()
-        result = json.loads(Result().get())
-
-        self.assertEqual('error', result['status'])
-
-
-class EnvTestCase(unittest.TestCase):
-
-    @mock.patch('api.views.request')
-    def test_post(self, mock_request):
-        mock_request.json.get.side_effect = ['hello', {}]
-
-        result = json.loads(Env().post())
-
-        self.assertEqual('error', result['status'])
-
-
-def main():
-    unittest.main()
-
-
-if __name__ == '__main__':
-    main()
index 9e050c7..5d17740 100644 (file)
@@ -7,7 +7,6 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 import unittest
-import json
 
 from api.utils import common
 
@@ -58,35 +57,6 @@ class GetCommandListTestCase(unittest.TestCase):
         self.assertEqual(result_list, output_list)
 
 
-class ErrorHandlerTestCase(unittest.TestCase):
-
-    def test_error_handler(self):
-        message = 'hello world'
-        output_dict = json.loads(common.error_handler(message))
-
-        result = {
-            'status': 'error',
-            'message': message
-        }
-
-        self.assertEqual(result, output_dict)
-
-
-class ResultHandlerTestCase(unittest.TestCase):
-
-    def test_result_handler(self):
-        status = 1
-        data = ['hello world']
-        output_dict = json.loads(common.result_handler(status, data))
-
-        result = {
-            'status': status,
-            'result': data
-        }
-
-        self.assertEqual(result, output_dict)
-
-
 def main():
     unittest.main()
 
diff --git a/tests/unit/api/utils/test_daemonthread.py b/tests/unit/api/utils/test_daemonthread.py
deleted file mode 100644 (file)
index f07f0fe..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-##############################################################################
-# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-import unittest
-import mock
-
-from api.utils.daemonthread import DaemonThread
-
-
-class DaemonThreadTestCase(unittest.TestCase):
-
-    @mock.patch('api.utils.daemonthread.os')
-    def test_run(self, mock_os):
-        def func(common_list, task_id):
-            return task_id
-
-        common_list = []
-        task_id = '1234'
-        thread = DaemonThread(func, (common_list, task_id))
-        thread.run()
-
-        mock_os.path.exist.return_value = True
-        pre_path = '../tests/opnfv/test_suites/'
-        mock_os.remove.assert_called_with(pre_path + '1234.yaml')
-
-
-def main():
-    unittest.main()
-
-
-if __name__ == '__main__':
-    main()