summaryrefslogtreecommitdiff
path: root/openstackclient/tests/compute/v2/test_aggregate.py
diff options
context:
space:
mode:
Diffstat (limited to 'openstackclient/tests/compute/v2/test_aggregate.py')
-rw-r--r--openstackclient/tests/compute/v2/test_aggregate.py447
1 files changed, 0 insertions, 447 deletions
diff --git a/openstackclient/tests/compute/v2/test_aggregate.py b/openstackclient/tests/compute/v2/test_aggregate.py
deleted file mode 100644
index 3ebca35f..00000000
--- a/openstackclient/tests/compute/v2/test_aggregate.py
+++ /dev/null
@@ -1,447 +0,0 @@
-# Copyright 2016 Huawei, Inc. All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-#
-
-import mock
-from mock import call
-
-from osc_lib import exceptions
-from osc_lib import utils
-
-from openstackclient.compute.v2 import aggregate
-from openstackclient.tests.compute.v2 import fakes as compute_fakes
-from openstackclient.tests import utils as tests_utils
-
-
-class TestAggregate(compute_fakes.TestComputev2):
-
- fake_ag = compute_fakes.FakeAggregate.create_one_aggregate()
-
- columns = (
- 'availability_zone',
- 'hosts',
- 'id',
- 'metadata',
- 'name',
- )
-
- data = (
- fake_ag.availability_zone,
- fake_ag.hosts,
- fake_ag.id,
- fake_ag.metadata,
- fake_ag.name,
- )
-
- def setUp(self):
- super(TestAggregate, self).setUp()
-
- # Get a shortcut to the AggregateManager Mock
- self.aggregate_mock = self.app.client_manager.compute.aggregates
- self.aggregate_mock.reset_mock()
-
-
-class TestAggregateAddHost(TestAggregate):
-
- def setUp(self):
- super(TestAggregateAddHost, self).setUp()
-
- self.aggregate_mock.get.return_value = self.fake_ag
- self.aggregate_mock.add_host.return_value = self.fake_ag
- self.cmd = aggregate.AddAggregateHost(self.app, None)
-
- def test_aggregate_add_host(self):
- arglist = [
- 'ag1',
- 'host1',
- ]
- verifylist = [
- ('aggregate', 'ag1'),
- ('host', 'host1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- self.aggregate_mock.get.assert_called_once_with(parsed_args.aggregate)
- self.aggregate_mock.add_host.assert_called_once_with(self.fake_ag,
- parsed_args.host)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
-
-class TestAggregateCreate(TestAggregate):
-
- def setUp(self):
- super(TestAggregateCreate, self).setUp()
-
- self.aggregate_mock.create.return_value = self.fake_ag
- self.aggregate_mock.set_metadata.return_value = self.fake_ag
- self.cmd = aggregate.CreateAggregate(self.app, None)
-
- def test_aggregate_create(self):
- arglist = [
- 'ag1',
- ]
- verifylist = [
- ('name', 'ag1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- self.aggregate_mock.create.assert_called_once_with(parsed_args.name,
- None)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
- def test_aggregate_create_with_zone(self):
- arglist = [
- '--zone', 'zone1',
- 'ag1',
- ]
- verifylist = [
- ('zone', 'zone1'),
- ('name', 'ag1'),
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- self.aggregate_mock.create.assert_called_once_with(parsed_args.name,
- parsed_args.zone)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
- def test_aggregate_create_with_property(self):
- arglist = [
- '--property', 'key1=value1',
- '--property', 'key2=value2',
- 'ag1',
- ]
- verifylist = [
- ('property', {'key1': 'value1', 'key2': 'value2'}),
- ('name', 'ag1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- self.aggregate_mock.create.assert_called_once_with(parsed_args.name,
- None)
- self.aggregate_mock.set_metadata.assert_called_once_with(
- self.fake_ag, parsed_args.property)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
-
-class TestAggregateDelete(TestAggregate):
-
- fake_ags = compute_fakes.FakeAggregate.create_aggregates(count=2)
-
- def setUp(self):
- super(TestAggregateDelete, self).setUp()
-
- self.aggregate_mock.get = (
- compute_fakes.FakeAggregate.get_aggregates(self.fake_ags))
- self.cmd = aggregate.DeleteAggregate(self.app, None)
-
- def test_aggregate_delete(self):
- arglist = [
- self.fake_ags[0].id
- ]
- verifylist = [
- ('aggregate', [self.fake_ags[0].id]),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
- self.aggregate_mock.get.assert_called_once_with(self.fake_ags[0].id)
- self.aggregate_mock.delete.assert_called_once_with(self.fake_ags[0].id)
- self.assertIsNone(result)
-
- def test_delete_multiple_aggregates(self):
- arglist = []
- for a in self.fake_ags:
- arglist.append(a.id)
- verifylist = [
- ('aggregate', arglist),
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
-
- calls = []
- for a in self.fake_ags:
- calls.append(call(a.id))
- self.aggregate_mock.delete.assert_has_calls(calls)
- self.assertIsNone(result)
-
- def test_delete_multiple_agggregates_with_exception(self):
- arglist = [
- self.fake_ags[0].id,
- 'unexist_aggregate',
- ]
- verifylist = [
- ('aggregate', arglist),
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- find_mock_result = [self.fake_ags[0], exceptions.CommandError]
- with mock.patch.object(utils, 'find_resource',
- side_effect=find_mock_result) as find_mock:
- try:
- self.cmd.take_action(parsed_args)
- self.fail('CommandError should be raised.')
- except exceptions.CommandError as e:
- self.assertEqual('1 of 2 aggregates failed to delete.',
- str(e))
-
- find_mock.assert_any_call(self.aggregate_mock, self.fake_ags[0].id)
- find_mock.assert_any_call(self.aggregate_mock, 'unexist_aggregate')
-
- self.assertEqual(2, find_mock.call_count)
- self.aggregate_mock.delete.assert_called_once_with(
- self.fake_ags[0].id
- )
-
-
-class TestAggregateList(TestAggregate):
-
- list_columns = (
- "ID",
- "Name",
- "Availability Zone",
- )
-
- list_columns_long = (
- "ID",
- "Name",
- "Availability Zone",
- "Properties",
- )
-
- list_data = ((
- TestAggregate.fake_ag.id,
- TestAggregate.fake_ag.name,
- TestAggregate.fake_ag.availability_zone,
- ), )
-
- list_data_long = ((
- TestAggregate.fake_ag.id,
- TestAggregate.fake_ag.name,
- TestAggregate.fake_ag.availability_zone,
- {},
- ), )
-
- def setUp(self):
- super(TestAggregateList, self).setUp()
-
- self.aggregate_mock.list.return_value = [self.fake_ag]
- self.cmd = aggregate.ListAggregate(self.app, None)
-
- def test_aggregate_list(self):
-
- parsed_args = self.check_parser(self.cmd, [], [])
- columns, data = self.cmd.take_action(parsed_args)
-
- self.assertEqual(self.list_columns, columns)
- self.assertEqual(self.list_data, tuple(data))
-
- def test_aggregate_list_with_long(self):
- arglist = [
- '--long',
- ]
- vertifylist = [
- ('long', True),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, vertifylist)
- columns, data = self.cmd.take_action(parsed_args)
-
- self.assertEqual(self.list_columns_long, columns)
- self.assertEqual(self.list_data_long, tuple(data))
-
-
-class TestAggregateRemoveHost(TestAggregate):
-
- def setUp(self):
- super(TestAggregateRemoveHost, self).setUp()
-
- self.aggregate_mock.get.return_value = self.fake_ag
- self.aggregate_mock.remove_host.return_value = self.fake_ag
- self.cmd = aggregate.RemoveAggregateHost(self.app, None)
-
- def test_aggregate_add_host(self):
- arglist = [
- 'ag1',
- 'host1',
- ]
- verifylist = [
- ('aggregate', 'ag1'),
- ('host', 'host1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- self.aggregate_mock.get.assert_called_once_with(parsed_args.aggregate)
- self.aggregate_mock.remove_host.assert_called_once_with(
- self.fake_ag, parsed_args.host)
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
-
-class TestAggregateSet(TestAggregate):
-
- def setUp(self):
- super(TestAggregateSet, self).setUp()
-
- self.aggregate_mock.get.return_value = self.fake_ag
- self.cmd = aggregate.SetAggregate(self.app, None)
-
- def test_aggregate_set_no_option(self):
- arglist = [
- 'ag1',
- ]
- verifylist = [
- ('aggregate', 'ag1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
-
- self.aggregate_mock.get.assert_called_once_with(parsed_args.aggregate)
- self.assertNotCalled(self.aggregate_mock.update)
- self.assertNotCalled(self.aggregate_mock.set_metadata)
- self.assertIsNone(result)
-
- def test_aggregate_set_with_name(self):
- arglist = [
- '--name', 'new_name',
- 'ag1',
- ]
- verifylist = [
- ('name', 'new_name'),
- ('aggregate', 'ag1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
-
- self.aggregate_mock.get.assert_called_once_with(parsed_args.aggregate)
- self.aggregate_mock.update.assert_called_once_with(
- self.fake_ag, {'name': parsed_args.name})
- self.assertNotCalled(self.aggregate_mock.set_metadata)
- self.assertIsNone(result)
-
- def test_aggregate_set_with_zone(self):
- arglist = [
- '--zone', 'new_zone',
- 'ag1',
- ]
- verifylist = [
- ('zone', 'new_zone'),
- ('aggregate', 'ag1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
-
- self.aggregate_mock.get.assert_called_once_with(parsed_args.aggregate)
- self.aggregate_mock.update.assert_called_once_with(
- self.fake_ag, {'availability_zone': parsed_args.zone})
- self.assertNotCalled(self.aggregate_mock.set_metadata)
- self.assertIsNone(result)
-
- def test_aggregate_set_with_property(self):
- arglist = [
- '--property', 'key1=value1',
- '--property', 'key2=value2',
- 'ag1',
- ]
- verifylist = [
- ('property', {'key1': 'value1', 'key2': 'value2'}),
- ('aggregate', 'ag1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
-
- self.aggregate_mock.get.assert_called_once_with(parsed_args.aggregate)
- self.assertNotCalled(self.aggregate_mock.update)
- self.aggregate_mock.set_metadata.assert_called_once_with(
- self.fake_ag, parsed_args.property)
- self.assertIsNone(result)
-
-
-class TestAggregateShow(TestAggregate):
-
- columns = (
- 'availability_zone',
- 'hosts',
- 'id',
- 'name',
- 'properties',
- )
-
- data = (
- TestAggregate.fake_ag.availability_zone,
- TestAggregate.fake_ag.hosts,
- TestAggregate.fake_ag.id,
- TestAggregate.fake_ag.name,
- '',
- )
-
- def setUp(self):
- super(TestAggregateShow, self).setUp()
-
- self.aggregate_mock.get.return_value = self.fake_ag
- self.cmd = aggregate.ShowAggregate(self.app, None)
-
- def test_aggregate_show(self):
- arglist = [
- 'ag1',
- ]
- verifylist = [
- ('aggregate', 'ag1'),
- ]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- columns, data = self.cmd.take_action(parsed_args)
- self.aggregate_mock.get.assert_called_once_with(parsed_args.aggregate)
-
- self.assertEqual(self.columns, columns)
- self.assertEqual(self.data, data)
-
-
-class TestAggregateUnset(TestAggregate):
-
- def setUp(self):
- super(TestAggregateUnset, self).setUp()
-
- self.aggregate_mock.get.return_value = self.fake_ag
- self.cmd = aggregate.UnsetAggregate(self.app, None)
-
- def test_aggregate_unset(self):
- arglist = [
- '--property', 'unset_key',
- 'ag1',
- ]
- verifylist = [
- ('property', ['unset_key']),
- ('aggregate', 'ag1'),
- ]
-
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
- result = self.cmd.take_action(parsed_args)
- self.aggregate_mock.set_metadata.assert_called_once_with(
- self.fake_ag, {'unset_key': None})
- self.assertIsNone(result)
-
- def test_aggregate_unset_no_property(self):
- arglist = [
- 'ag1',
- ]
- verifylist = None
- self.assertRaises(tests_utils.ParserException,
- self.check_parser,
- self.cmd,
- arglist,
- verifylist)