summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-03-11 04:50:26 +0000
committerGerrit Code Review <review@openstack.org>2016-03-11 04:50:26 +0000
commit4856eb144a418ecac396c68b8e7f39a45d8bf5ea (patch)
tree26d5a1ac26ab1288d68337ca1d7f2f55e443410d /openstackclient
parente0036756f6bcc25c09395071182b9c47624ea586 (diff)
parent4208f02a20af6d7561bd925406893b261a5fbbe1 (diff)
downloadpython-openstackclient-4856eb144a418ecac396c68b8e7f39a45d8bf5ea.tar.gz
Merge "Enhance list extension unit test"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/tests/common/test_extension.py157
-rw-r--r--openstackclient/tests/volume/v2/fakes.py20
2 files changed, 137 insertions, 40 deletions
diff --git a/openstackclient/tests/common/test_extension.py b/openstackclient/tests/common/test_extension.py
index 66532827..0736a3e5 100644
--- a/openstackclient/tests/common/test_extension.py
+++ b/openstackclient/tests/common/test_extension.py
@@ -12,13 +12,16 @@
#
import copy
+import mock
from openstackclient.common import extension
from openstackclient.tests import fakes
from openstackclient.tests import utils
+from openstackclient.tests.compute.v2 import fakes as compute_fakes
from openstackclient.tests.identity.v2_0 import fakes as identity_fakes
from openstackclient.tests.network.v2 import fakes as network_fakes
+from openstackclient.tests.volume.v2 import fakes as volume_fakes
class TestExtension(utils.TestCommand):
@@ -34,6 +37,16 @@ class TestExtension(utils.TestCommand):
self.app.client_manager.identity.extensions)
self.identity_extensions_mock.reset_mock()
+ self.app.client_manager.compute = compute_fakes.FakeComputev2Client(
+ endpoint=fakes.AUTH_URL,
+ token=fakes.AUTH_TOKEN,
+ )
+
+ self.app.client_manager.volume = volume_fakes.FakeVolumeClient(
+ endpoint=fakes.AUTH_URL,
+ token=fakes.AUTH_TOKEN,
+ )
+
network_client = network_fakes.FakeNetworkV2Client()
self.app.client_manager.network = network_client
self.network_extensions_mock = network_client.extensions
@@ -43,6 +56,8 @@ class TestExtension(utils.TestCommand):
class TestExtensionList(TestExtension):
columns = ('Name', 'Alias', 'Description')
+ long_columns = ('Name', 'Namespace', 'Description', 'Alias', 'Updated',
+ 'Links')
def setUp(self):
super(TestExtensionList, self).setUp()
@@ -55,12 +70,33 @@ class TestExtensionList(TestExtension):
),
]
+ self.app.client_manager.compute.list_extensions = mock.Mock()
+ self.compute_extensions_mock = (
+ self.app.client_manager.compute.list_extensions)
+ self.compute_extensions_mock.show_all.return_value = [
+ fakes.FakeResource(
+ None,
+ copy.deepcopy(compute_fakes.EXTENSION),
+ loaded=True,
+ ),
+ ]
+
+ self.app.client_manager.volume.list_extensions = mock.Mock()
+ self.volume_extensions_mock = (
+ self.app.client_manager.volume.list_extensions)
+ self.volume_extensions_mock.show_all.return_value = [
+ fakes.FakeResource(
+ None,
+ copy.deepcopy(volume_fakes.EXTENSION),
+ loaded=True,
+ ),
+ ]
+
# Get the command object to test
self.cmd = extension.ListExtension(self.app, None)
- def test_extension_list_no_options(self):
- arglist = []
- verifylist = []
+ def _test_extension_list_helper(self, arglist, verifylist,
+ expected_data, long=False):
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
# In base command class Lister in cliff, abstract method take_action()
@@ -68,10 +104,15 @@ class TestExtensionList(TestExtension):
# containing the data to be listed.
columns, data = self.cmd.take_action(parsed_args)
- # no args should output from all services
- self.identity_extensions_mock.list.assert_called_with()
+ if long:
+ self.assertEqual(self.long_columns, columns)
+ else:
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(expected_data, tuple(data))
- self.assertEqual(self.columns, columns)
+ def test_extension_list_no_options(self):
+ arglist = []
+ verifylist = []
datalist = (
(
identity_fakes.extension_name,
@@ -79,12 +120,26 @@ class TestExtensionList(TestExtension):
identity_fakes.extension_description,
),
(
+ compute_fakes.extension_name,
+ compute_fakes.extension_alias,
+ compute_fakes.extension_description,
+ ),
+ (
+ volume_fakes.extension_name,
+ volume_fakes.extension_alias,
+ volume_fakes.extension_description,
+ ),
+ (
network_fakes.extension_name,
network_fakes.extension_alias,
network_fakes.extension_description,
),
)
- self.assertEqual(datalist, tuple(data))
+ self._test_extension_list_helper(arglist, verifylist, datalist)
+ self.identity_extensions_mock.list.assert_called_with()
+ self.compute_extensions_mock.show_all.assert_called_with()
+ self.volume_extensions_mock.show_all.assert_called_with()
+ self.network_extensions_mock.assert_called_with()
def test_extension_list_long(self):
arglist = [
@@ -93,19 +148,6 @@ class TestExtensionList(TestExtension):
verifylist = [
('long', True),
]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- # In base command class Lister in cliff, abstract method take_action()
- # returns a tuple containing the column names and an iterable
- # containing the data to be listed.
- columns, data = self.cmd.take_action(parsed_args)
-
- # no args should output from all services
- self.identity_extensions_mock.list.assert_called_with()
-
- collist = ('Name', 'Namespace', 'Description', 'Alias', 'Updated',
- 'Links')
- self.assertEqual(collist, columns)
datalist = (
(
identity_fakes.extension_name,
@@ -116,6 +158,22 @@ class TestExtensionList(TestExtension):
identity_fakes.extension_links,
),
(
+ compute_fakes.extension_name,
+ compute_fakes.extension_namespace,
+ compute_fakes.extension_description,
+ compute_fakes.extension_alias,
+ compute_fakes.extension_updated,
+ compute_fakes.extension_links,
+ ),
+ (
+ volume_fakes.extension_name,
+ volume_fakes.extension_namespace,
+ volume_fakes.extension_description,
+ volume_fakes.extension_alias,
+ volume_fakes.extension_updated,
+ volume_fakes.extension_links,
+ ),
+ (
network_fakes.extension_name,
network_fakes.extension_namespace,
network_fakes.extension_description,
@@ -124,7 +182,11 @@ class TestExtensionList(TestExtension):
network_fakes.extension_links,
),
)
- self.assertEqual(datalist, tuple(data))
+ self._test_extension_list_helper(arglist, verifylist, datalist, True)
+ self.identity_extensions_mock.list.assert_called_with()
+ self.compute_extensions_mock.show_all.assert_called_with()
+ self.volume_extensions_mock.show_all.assert_called_with()
+ self.network_extensions_mock.assert_called_with()
def test_extension_list_identity(self):
arglist = [
@@ -133,22 +195,13 @@ class TestExtensionList(TestExtension):
verifylist = [
('identity', True),
]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- # In base command class Lister in cliff, abstract method take_action()
- # returns a tuple containing the column names and an iterable
- # containing the data to be listed.
- columns, data = self.cmd.take_action(parsed_args)
-
- self.identity_extensions_mock.list.assert_called_with()
-
- self.assertEqual(self.columns, columns)
datalist = ((
identity_fakes.extension_name,
identity_fakes.extension_alias,
identity_fakes.extension_description,
), )
- self.assertEqual(datalist, tuple(data))
+ self._test_extension_list_helper(arglist, verifylist, datalist)
+ self.identity_extensions_mock.list.assert_called_with()
def test_extension_list_network(self):
arglist = [
@@ -157,13 +210,6 @@ class TestExtensionList(TestExtension):
verifylist = [
('network', True),
]
- parsed_args = self.check_parser(self.cmd, arglist, verifylist)
-
- columns, data = self.cmd.take_action(parsed_args)
-
- self.network_extensions_mock.assert_called_with()
-
- self.assertEqual(self.columns, columns)
datalist = (
(
network_fakes.extension_name,
@@ -171,4 +217,35 @@ class TestExtensionList(TestExtension):
network_fakes.extension_description,
),
)
- self.assertEqual(datalist, tuple(data))
+ self._test_extension_list_helper(arglist, verifylist, datalist)
+ self.network_extensions_mock.assert_called_with()
+
+ def test_extension_list_compute(self):
+ arglist = [
+ '--compute',
+ ]
+ verifylist = [
+ ('compute', True),
+ ]
+ datalist = ((
+ compute_fakes.extension_name,
+ compute_fakes.extension_alias,
+ compute_fakes.extension_description,
+ ), )
+ self._test_extension_list_helper(arglist, verifylist, datalist)
+ self.compute_extensions_mock.show_all.assert_called_with()
+
+ def test_extension_list_volume(self):
+ arglist = [
+ '--volume',
+ ]
+ verifylist = [
+ ('volume', True),
+ ]
+ datalist = ((
+ volume_fakes.extension_name,
+ volume_fakes.extension_alias,
+ volume_fakes.extension_description,
+ ), )
+ self._test_extension_list_helper(arglist, verifylist, datalist)
+ self.volume_extensions_mock.show_all.assert_called_with()
diff --git a/openstackclient/tests/volume/v2/fakes.py b/openstackclient/tests/volume/v2/fakes.py
index 61d9df3a..97bbc59b 100644
--- a/openstackclient/tests/volume/v2/fakes.py
+++ b/openstackclient/tests/volume/v2/fakes.py
@@ -211,6 +211,26 @@ IMAGE = {
'name': image_name
}
+extension_name = 'SchedulerHints'
+extension_namespace = 'http://docs.openstack.org/'\
+ 'block-service/ext/scheduler-hints/api/v2'
+extension_description = 'Pass arbitrary key/value'\
+ 'pairs to the scheduler.'
+extension_updated = '2013-04-18T00:00:00+00:00'
+extension_alias = 'OS-SCH-HNT'
+extension_links = '[{"href":'\
+ '"https://github.com/openstack/block-api", "type":'\
+ ' "text/html", "rel": "describedby"}]'
+
+EXTENSION = {
+ 'name': extension_name,
+ 'namespace': extension_namespace,
+ 'description': extension_description,
+ 'updated': extension_updated,
+ 'alias': extension_alias,
+ 'links': extension_links,
+}
+
class FakeVolumeClient(object):