From 1558bcf48bdba369187d7cb07482f2fbcc6f4feb Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Wed, 30 Nov 2016 07:28:36 +0000 Subject: Use flask jsonify method to return json result 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 --- api/actions/test.py | 14 ++------ api/utils/common.py | 7 ++-- tests/unit/api/actions/test_env.py | 50 --------------------------- tests/unit/api/actions/test_result.py | 29 ---------------- tests/unit/api/actions/test_test.py | 29 ---------------- tests/unit/api/test_views.py | 57 ------------------------------- tests/unit/api/utils/test_common.py | 30 ---------------- tests/unit/api/utils/test_daemonthread.py | 37 -------------------- 8 files changed, 6 insertions(+), 247 deletions(-) delete mode 100644 tests/unit/api/actions/test_env.py delete mode 100644 tests/unit/api/actions/test_result.py delete mode 100644 tests/unit/api/actions/test_test.py delete mode 100644 tests/unit/api/test_views.py delete mode 100644 tests/unit/api/utils/test_daemonthread.py diff --git a/api/actions/test.py b/api/actions/test.py index b1dc212c2..fda0ffd32 100644 --- a/api/actions/test.py +++ b/api/actions/test.py @@ -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) diff --git a/api/utils/common.py b/api/utils/common.py index 09cfc04d4..e3e64a72b 100644 --- a/api/utils/common.py +++ b/api/utils/common.py @@ -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 index e674d73d2..000000000 --- a/tests/unit/api/actions/test_env.py +++ /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 index 168631905..000000000 --- a/tests/unit/api/actions/test_result.py +++ /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 index 7ebe9fc24..000000000 --- a/tests/unit/api/actions/test_test.py +++ /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 index b83556713..000000000 --- a/tests/unit/api/test_views.py +++ /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() diff --git a/tests/unit/api/utils/test_common.py b/tests/unit/api/utils/test_common.py index 9e050c714..5d177409e 100644 --- a/tests/unit/api/utils/test_common.py +++ b/tests/unit/api/utils/test_common.py @@ -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 index f07f0fede..000000000 --- a/tests/unit/api/utils/test_daemonthread.py +++ /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() -- cgit 1.2.3-korg