summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-09-29 19:22:31 +0000
committerGerrit Code Review <review@openstack.org>2016-09-29 19:22:31 +0000
commit15069ef50e609dca769d6a50f6af92b2c8211238 (patch)
treeffb7792602125e4a51d454951322c3961d7affc2 /openstackclient/tests
parent2026dee17e7b6b8d738345fd27dc905efb6561f1 (diff)
parent63715569160785ffeac05e34b604136440a9f865 (diff)
downloadpython-openstackclient-15069ef50e609dca769d6a50f6af92b2c8211238.tar.gz
Merge "Support "--no" option in aggregate set"
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/unit/compute/v2/fakes.py1
-rw-r--r--openstackclient/tests/unit/compute/v2/test_aggregate.py98
2 files changed, 89 insertions, 10 deletions
diff --git a/openstackclient/tests/unit/compute/v2/fakes.py b/openstackclient/tests/unit/compute/v2/fakes.py
index 3c829773..985ce5e2 100644
--- a/openstackclient/tests/unit/compute/v2/fakes.py
+++ b/openstackclient/tests/unit/compute/v2/fakes.py
@@ -83,6 +83,7 @@ class FakeAggregate(object):
"id": "aggregate-id-" + uuid.uuid4().hex,
"metadata": {
"availability_zone": "ag_zone",
+ "key1": "value1",
}
}
diff --git a/openstackclient/tests/unit/compute/v2/test_aggregate.py b/openstackclient/tests/unit/compute/v2/test_aggregate.py
index c636d3de..3efe0dbd 100644
--- a/openstackclient/tests/unit/compute/v2/test_aggregate.py
+++ b/openstackclient/tests/unit/compute/v2/test_aggregate.py
@@ -21,7 +21,6 @@ from osc_lib import utils
from openstackclient.compute.v2 import aggregate
from openstackclient.tests.unit.compute.v2 import fakes as compute_fakes
-from openstackclient.tests.unit import utils as tests_utils
class TestAggregate(compute_fakes.TestComputev2):
@@ -235,7 +234,8 @@ class TestAggregateList(TestAggregate):
TestAggregate.fake_ag.id,
TestAggregate.fake_ag.name,
TestAggregate.fake_ag.availability_zone,
- {},
+ {key: value for key, value in TestAggregate.fake_ag.metadata.items()
+ if key != 'availability_zone'},
), )
def setUp(self):
@@ -371,6 +371,62 @@ class TestAggregateSet(TestAggregate):
self.fake_ag, parsed_args.property)
self.assertIsNone(result)
+ def test_aggregate_set_with_no_property_and_property(self):
+ arglist = [
+ '--no-property',
+ '--property', 'key2=value2',
+ 'ag1',
+ ]
+ verifylist = [
+ ('no_property', True),
+ ('property', {'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, {'key1': None, 'key2': 'value2'})
+ self.assertIsNone(result)
+
+ def test_aggregate_set_with_no_property(self):
+ arglist = [
+ '--no-property',
+ 'ag1',
+ ]
+ verifylist = [
+ ('no_property', True),
+ ('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, {'key1': None})
+ self.assertIsNone(result)
+
+ def test_aggregate_set_with_zone_and_no_property(self):
+ arglist = [
+ '--zone', 'new_zone',
+ '--no-property',
+ 'ag1',
+ ]
+ verifylist = [
+ ('zone', 'new_zone'),
+ ('no_property', True),
+ ('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.aggregate_mock.set_metadata.assert_called_once_with(
+ self.fake_ag, {'key1': None})
+ self.assertIsNone(result)
+
class TestAggregateShow(TestAggregate):
@@ -387,7 +443,10 @@ class TestAggregateShow(TestAggregate):
TestAggregate.fake_ag.hosts,
TestAggregate.fake_ag.id,
TestAggregate.fake_ag.name,
- '',
+ utils.format_dict(
+ {key: value
+ for key, value in TestAggregate.fake_ag.metadata.items()
+ if key != 'availability_zone'}),
)
def setUp(self):
@@ -435,13 +494,32 @@ class TestAggregateUnset(TestAggregate):
self.fake_ag, {'unset_key': None})
self.assertIsNone(result)
- def test_aggregate_unset_no_property(self):
+ def test_aggregate_unset_multiple_properties(self):
arglist = [
+ '--property', 'unset_key1',
+ '--property', 'unset_key2',
'ag1',
]
- verifylist = None
- self.assertRaises(tests_utils.ParserException,
- self.check_parser,
- self.cmd,
- arglist,
- verifylist)
+ verifylist = [
+ ('property', ['unset_key1', 'unset_key2']),
+ ('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_key1': None, 'unset_key2': None})
+ self.assertIsNone(result)
+
+ def test_aggregate_unset_no_option(self):
+ arglist = [
+ 'ag1',
+ ]
+ verifylist = [
+ ('property', None),
+ ('aggregate', 'ag1'),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ result = self.cmd.take_action(parsed_args)
+ self.assertNotCalled(self.aggregate_mock.set_metadata)
+ self.assertIsNone(result)