diff options
Diffstat (limited to 'yardstick/tests')
-rw-r--r-- | yardstick/tests/unit/benchmark/contexts/test_heat.py | 78 | ||||
-rw-r--r-- | yardstick/tests/unit/benchmark/core/test_task.py | 32 |
2 files changed, 109 insertions, 1 deletions
diff --git a/yardstick/tests/unit/benchmark/contexts/test_heat.py b/yardstick/tests/unit/benchmark/contexts/test_heat.py index 1e31abce8..c449b2a28 100644 --- a/yardstick/tests/unit/benchmark/contexts/test_heat.py +++ b/yardstick/tests/unit/benchmark/contexts/test_heat.py @@ -16,6 +16,8 @@ import logging import mock import unittest +import shade + from yardstick.benchmark.contexts import base from yardstick.benchmark.contexts import heat from yardstick.benchmark.contexts import model @@ -120,13 +122,33 @@ class HeatContextTestCase(unittest.TestCase): self.assertEqual(self.test_context.assigned_name, 'foo') def test_name_flags(self): - self.test_context._flags = base.Flags(**{"no_setup": True, "no_teardown": True}) + self.test_context._flags = base.Flags( + **{"no_setup": True, "no_teardown": True}) self.test_context._name = 'foo' self.test_context._task_id = '1234567890' self.assertEqual(self.test_context.name, 'foo') self.assertEqual(self.test_context.assigned_name, 'foo') + @mock.patch('yardstick.ssh.SSH.gen_keys') + def test_init_no_setup_no_teardown(self, *args): + + attrs = {'name': 'foo', + 'task_id': '1234567890', + 'placement_groups': {}, + 'server_groups': {}, + 'networks': {}, + 'servers': {}, + 'flags': { + 'no_setup': True, + 'no_teardown': True, + }, + } + + self.test_context.init(attrs) + self.assertTrue(self.test_context._flags.no_setup) + self.assertTrue(self.test_context._flags.no_teardown) + @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate') def test__add_resources_to_template_no_servers(self, mock_template): self.test_context._name = 'ctx' @@ -228,6 +250,50 @@ class HeatContextTestCase(unittest.TestCase): {'image': 'cirros'}) self.assertIsNotNone(self.test_context.stack) + # TODO: patch objects + @mock.patch.object(heat, 'HeatTemplate') + @mock.patch.object(heat.HeatContext, '_retrieve_existing_stack') + @mock.patch.object(heat.HeatContext, '_create_new_stack') + def test_deploy_no_setup(self, mock_create_new_stack, mock_retrieve_existing_stack, *args): + self.test_context._name = 'foo' + self.test_context._task_id = '1234567890' + # Might be able to get rid of these + self.test_context.template_file = '/bar/baz/some-heat-file' + self.test_context.heat_parameters = {'image': 'cirros'} + self.test_context.get_neutron_info = mock.MagicMock() + self.test_context._flags.no_setup = True + self.test_context.deploy() + + # check that heat client is called... + mock_create_new_stack.assert_not_called() + mock_retrieve_existing_stack.assert_called_with(self.test_context.name) + self.assertIsNotNone(self.test_context.stack) + + @mock.patch.object(shade, 'openstack_cloud') + @mock.patch.object(heat.HeatTemplate, 'add_keypair') + @mock.patch.object(heat.HeatContext, '_create_new_stack') + @mock.patch.object(heat.HeatStack, 'get') + def test_deploy_try_retrieve_context_does_not_exist(self, + mock_get_stack, + mock_create_new_stack, + *args): + self.test_context._name = 'demo' + self.test_context._task_id = '1234567890' + self.test_context._flags.no_setup = True + self.test_context.get_neutron_info = mock.MagicMock() + + # TODo: Check is this the right value to return, should it be None instead? + mock_get_stack.return_value = [] + + self.test_context.deploy() + + mock_get_stack.assert_called() + mock_create_new_stack.assert_called() + + def test_check_for_context(self): + pass + # check that the context exists + def test_add_server_port(self): network1 = mock.MagicMock() network2 = mock.MagicMock() @@ -302,6 +368,16 @@ class HeatContextTestCase(unittest.TestCase): self.assertTrue(mock_template.delete.called) @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate') + def test_undeploy_no_teardown(self, mock_template): + self.test_context.stack = mock_template + self.test_context._name = 'foo' + self.test_context._task_id = '1234567890' + self.test_context._flags.no_teardown = True + self.test_context.undeploy() + + mock_template.delete.assert_not_called() + + @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate') @mock.patch('yardstick.benchmark.contexts.heat.os') def test_undeploy_key_filename(self, mock_os, mock_template): self.test_context.stack = mock_template diff --git a/yardstick/tests/unit/benchmark/core/test_task.py b/yardstick/tests/unit/benchmark/core/test_task.py index 25a7a64b3..77e95bbec 100644 --- a/yardstick/tests/unit/benchmark/core/test_task.py +++ b/yardstick/tests/unit/benchmark/core/test_task.py @@ -259,6 +259,38 @@ class TaskTestCase(unittest.TestCase): actual_result = t._parse_options(options) self.assertEqual(expected_result, actual_result) + def test_parse_options_no_teardown(self): + options = { + 'openstack': { + 'EXTERNAL_NETWORK': '$network' + }, + 'nodes': ['node1', '$node'], + 'host': '$host', + 'contexts' : {'name': "my-context", + 'no_teardown': True} + } + + t = task.Task() + t.outputs = { + 'network': 'ext-net', + 'node': 'node2', + 'host': 'server.yardstick' + } + + expected_result = { + 'openstack': { + 'EXTERNAL_NETWORK': 'ext-net' + }, + 'nodes': ['node1', 'node2'], + 'host': 'server.yardstick', + 'contexts': {'name': 'my-context', + 'no_teardown': True, + } + } + + actual_result = t._parse_options(options) + self.assertEqual(expected_result, actual_result) + @mock.patch('six.moves.builtins.open', side_effect=mock.mock_open()) @mock.patch.object(task, 'utils') @mock.patch('logging.root') |