diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/ci/load_images.sh | 12 | ||||
-rwxr-xr-x | tests/ci/prepare_env.sh | 10 | ||||
-rw-r--r-- | tests/unit/api/actions/test_env.py | 50 | ||||
-rw-r--r-- | tests/unit/api/test_views.py | 12 | ||||
-rw-r--r-- | tests/unit/cmd/commands/test_env.py | 29 | ||||
-rw-r--r-- | tests/unit/common/test_httpClient.py | 33 |
6 files changed, 136 insertions, 10 deletions
diff --git a/tests/ci/load_images.sh b/tests/ci/load_images.sh index 54a145fd3..405d72076 100755 --- a/tests/ci/load_images.sh +++ b/tests/ci/load_images.sh @@ -12,6 +12,18 @@ set -e +YARD_IMG_ARCH=amd64 +export YARD_IMG_ARCH + +if ! grep -q "Defaults env_keep += \"YARD_IMG_ARCH\"" "/etc/sudoers"; then + sudo echo "Defaults env_keep += \"YARD_IMG_ARCH YARDSTICK_REPO_DIR\"" >> /etc/sudoers +fi + +ARCH_SCRIPT="test -f /etc/fuel_openstack_arch && grep -q arm64 /etc/fuel_openstack_arch" +if [ "$INSTALLER_TYPE" == "fuel" ]; then + sshpass -p r00tme ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -l root $INSTALLER_IP "${ARCH_SCRIPT}" && YARD_IMG_ARCH=arm64 +fi + UCA_HOST="cloud-images.ubuntu.com" if [ $YARD_IMG_ARCH = "arm64" ]; then export VIVID_IMG_URL="http://${UCA_HOST}/vivid/current/vivid-server-cloudimg-arm64.tar.gz" diff --git a/tests/ci/prepare_env.sh b/tests/ci/prepare_env.sh index 130969fa1..be59b7f37 100755 --- a/tests/ci/prepare_env.sh +++ b/tests/ci/prepare_env.sh @@ -74,13 +74,6 @@ verify_connectivity() { error "Can not talk to $ip." } -YARD_IMG_ARCH=amd64 -export YARD_IMG_ARCH - -if ! grep -q "Defaults env_keep += \"YARD_IMG_ARCH\"" "/etc/sudoers"; then - sudo echo "Defaults env_keep += \"YARD_IMG_ARCH YARDSTICK_REPO_DIR\"" >> /etc/sudoers -fi - ssh_options="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" if [ "$INSTALLER_TYPE" == "fuel" ]; then @@ -90,9 +83,6 @@ if [ "$INSTALLER_TYPE" == "fuel" ]; then sshpass -p r00tme scp 2>/dev/null $ssh_options \ root@${INSTALLER_IP}:~/.ssh/id_rsa /root/.ssh/id_rsa &> /dev/null - ARCH_SCRIPT="test -f /etc/fuel_openstack_arch && grep -q arm64 /etc/fuel_openstack_arch" - sshpass -p r00tme ssh $ssh_options -l root $INSTALLER_IP "${ARCH_SCRIPT}" && YARD_IMG_ARCH=arm64 - sshpass -p r00tme ssh 2>/dev/null $ssh_options \ root@${INSTALLER_IP} fuel node>fuel_node 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() |