From c383ae3fa6ccb865575eacf78209fdd3ac7efa69 Mon Sep 17 00:00:00 2001 From: chenjiankun Date: Mon, 28 Nov 2016 01:51:47 +0000 Subject: Create API and command to create a influxDB container JIRA: YARDSTICK-425 This API is used to create a influxDB Container Add command line to create a influxDB Container, too Change-Id: If9c2d04b779924d492a5d5ea91f7968fa959570e Signed-off-by: chenjiankun --- tests/unit/api/actions/test_env.py | 50 ++++++++++++++++++++++++++++++++++++ tests/unit/api/test_views.py | 12 +++++++++ tests/unit/cmd/commands/test_env.py | 29 +++++++++++++++++++++ tests/unit/common/test_httpClient.py | 33 ++++++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 tests/unit/api/actions/test_env.py create mode 100644 tests/unit/cmd/commands/test_env.py create mode 100644 tests/unit/common/test_httpClient.py (limited to 'tests') diff --git a/tests/unit/api/actions/test_env.py b/tests/unit/api/actions/test_env.py new file mode 100644 index 000000000..e674d73d2 --- /dev/null +++ b/tests/unit/api/actions/test_env.py @@ -0,0 +1,50 @@ +############################################################################## +# 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/test_views.py b/tests/unit/api/test_views.py index e57ec08a4..b83556713 100644 --- a/tests/unit/api/test_views.py +++ b/tests/unit/api/test_views.py @@ -12,6 +12,7 @@ import json from api.views import Test from api.views import Result +from api.views import Env class TestTestCase(unittest.TestCase): @@ -37,6 +38,17 @@ class ResultTestCase(unittest.TestCase): 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() diff --git a/tests/unit/cmd/commands/test_env.py b/tests/unit/cmd/commands/test_env.py new file mode 100644 index 000000000..af1ab8030 --- /dev/null +++ b/tests/unit/cmd/commands/test_env.py @@ -0,0 +1,29 @@ +############################################################################## +# 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 yardstick.cmd.commands.env import EnvCommand + + +class EnvCommandTestCase(unittest.TestCase): + + @mock.patch('yardstick.cmd.commands.env.HttpClient') + def test_do_influxdb(self, mock_http_client): + env = EnvCommand() + env.do_influxdb({}) + self.assertTrue(mock_http_client().post.called) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/common/test_httpClient.py b/tests/unit/common/test_httpClient.py new file mode 100644 index 000000000..b39dc2332 --- /dev/null +++ b/tests/unit/common/test_httpClient.py @@ -0,0 +1,33 @@ +############################################################################## +# 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 yardstick.common import httpClient + + +class HttpClientTestCase(unittest.TestCase): + + @mock.patch('yardstick.common.httpClient.requests') + def test_post(self, mock_requests): + url = 'http://localhost:5000/hello' + data = {'hello': 'world'} + headers = {'Content-Type': 'application/json'} + httpClient.HttpClient().post(url, data) + mock_requests.post.assert_called_with(url, data=json.dumps(data), + headers=headers) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() -- cgit 1.2.3-korg