aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchenjiankun <chenjiankun1@huawei.com>2016-11-30 07:28:36 +0000
committerchenjiankun <chenjiankun1@huawei.com>2016-11-30 07:28:36 +0000
commit1558bcf48bdba369187d7cb07482f2fbcc6f4feb (patch)
treea18ac011457cf219503bbeb79d83662bb2f67b4a
parented89d5d7372b598a3b849f7753e8d29a39282d53 (diff)
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 <chenjiankun1@huawei.com>
-rw-r--r--api/actions/test.py14
-rw-r--r--api/utils/common.py7
-rw-r--r--tests/unit/api/actions/test_env.py50
-rw-r--r--tests/unit/api/actions/test_result.py29
-rw-r--r--tests/unit/api/actions/test_test.py29
-rw-r--r--tests/unit/api/test_views.py57
-rw-r--r--tests/unit/api/utils/test_common.py30
-rw-r--r--tests/unit/api/utils/test_daemonthread.py37
8 files changed, 6 insertions, 247 deletions
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()