summaryrefslogtreecommitdiffstats
path: root/tests/unit/api
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/api')
-rw-r--r--tests/unit/api/utils/test_common.py65
-rw-r--r--tests/unit/api/utils/test_influx.py82
2 files changed, 147 insertions, 0 deletions
diff --git a/tests/unit/api/utils/test_common.py b/tests/unit/api/utils/test_common.py
new file mode 100644
index 000000000..5d177409e
--- /dev/null
+++ b/tests/unit/api/utils/test_common.py
@@ -0,0 +1,65 @@
+##############################################################################
+# 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
+
+from api.utils import common
+
+
+class TranslateToStrTestCase(unittest.TestCase):
+
+ def test_translate_to_str_unicode(self):
+ input_str = u'hello'
+ output_str = common.translate_to_str(input_str)
+
+ result = 'hello'
+ self.assertEqual(result, output_str)
+
+ def test_translate_to_str_dict_list_unicode(self):
+ input_str = {
+ u'hello': {u'hello': [u'world']}
+ }
+ output_str = common.translate_to_str(input_str)
+
+ result = {
+ 'hello': {'hello': ['world']}
+ }
+ self.assertEqual(result, output_str)
+
+
+class GetCommandListTestCase(unittest.TestCase):
+
+ def test_get_command_list_no_opts(self):
+ command_list = ['a']
+ opts = {}
+ args = 'b'
+ output_list = common.get_command_list(command_list, opts, args)
+
+ result_list = ['a', 'b']
+ self.assertEqual(result_list, output_list)
+
+ def test_get_command_list_with_opts_args(self):
+ command_list = ['a']
+ opts = {
+ 'b': 'c',
+ 'task-args': 'd'
+ }
+ args = 'e'
+
+ output_list = common.get_command_list(command_list, opts, args)
+
+ result_list = ['a', 'e', '--b', '--task-args', 'd']
+ self.assertEqual(result_list, output_list)
+
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/unit/api/utils/test_influx.py b/tests/unit/api/utils/test_influx.py
new file mode 100644
index 000000000..0852da2dd
--- /dev/null
+++ b/tests/unit/api/utils/test_influx.py
@@ -0,0 +1,82 @@
+##############################################################################
+# 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 uuid
+import datetime
+
+from api.utils import influx
+
+
+class GetDataDbClientTestCase(unittest.TestCase):
+
+ @mock.patch('api.utils.influx.ConfigParser')
+ def test_get_data_db_client_dispatcher_not_influxdb(self, mock_parser):
+ mock_parser.ConfigParser().get.return_value = 'file'
+ try:
+ influx.get_data_db_client()
+ except Exception as e:
+ self.assertIsInstance(e, RuntimeError)
+
+
+class GetIpTestCase(unittest.TestCase):
+
+ def test_get_url(self):
+ url = 'http://localhost:8086/hello'
+ output = influx._get_ip(url)
+
+ result = 'localhost'
+ self.assertEqual(result, output)
+
+
+class WriteDataTestCase(unittest.TestCase):
+
+ @mock.patch('api.utils.influx.get_data_db_client')
+ def test_write_data(self, mock_get_client):
+ measurement = 'tasklist'
+ field = {'status': 1}
+ timestamp = datetime.datetime.now()
+ tags = {'task_id': str(uuid.uuid4())}
+
+ influx._write_data(measurement, field, timestamp, tags)
+ mock_get_client.assert_called_with()
+
+
+class WriteDataTasklistTestCase(unittest.TestCase):
+
+ @mock.patch('api.utils.influx._write_data')
+ def test_write_data_tasklist(self, mock_write_data):
+ task_id = str(uuid.uuid4())
+ timestamp = datetime.datetime.now()
+ status = 1
+ influx.write_data_tasklist(task_id, timestamp, status)
+
+ field = {'status': status, 'error': ''}
+ tags = {'task_id': task_id}
+ mock_write_data.assert_called_with('tasklist', field, timestamp, tags)
+
+
+class QueryTestCase(unittest.TestCase):
+
+ @mock.patch('api.utils.influx.ConfigParser')
+ def test_query_dispatcher_not_influxdb(self, mock_parser):
+ mock_parser.ConfigParser().get.return_value = 'file'
+ try:
+ sql = 'select * form tasklist'
+ influx.query(sql)
+ except Exception as e:
+ self.assertIsInstance(e, RuntimeError)
+
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()