summaryrefslogtreecommitdiff
path: root/openstackclient/tests/compute
diff options
context:
space:
mode:
authorting.wang <ting.wang@easystack.cn>2016-02-24 16:42:03 +0800
committerting.wang <ting.wang@easystack.cn>2016-02-24 18:57:02 +0800
commite0b6cab09bfe5d83435afe069d08820fcc1c5aa7 (patch)
treebb1e55db3708ab556345597388f32ceba28e234d /openstackclient/tests/compute
parente5fe9a70718589b8ce7d455c3e2a3524f85510cb (diff)
downloadpython-openstackclient-e0b6cab09bfe5d83435afe069d08820fcc1c5aa7.tar.gz
Add some test cases for "server list" command
Add some test cases that test 'server list' command when specifying flavor or image. Because I add some attribution to fake.py, I have to change some code in create server test. Despite all this, I think it's good for testing. Change-Id: I714deac1f6f940b790a3c20af5f7ffa724ac44d1
Diffstat (limited to 'openstackclient/tests/compute')
-rw-r--r--openstackclient/tests/compute/v2/fakes.py6
-rw-r--r--openstackclient/tests/compute/v2/test_server.py99
2 files changed, 78 insertions, 27 deletions
diff --git a/openstackclient/tests/compute/v2/fakes.py b/openstackclient/tests/compute/v2/fakes.py
index d2341ccc..0521c4c5 100644
--- a/openstackclient/tests/compute/v2/fakes.py
+++ b/openstackclient/tests/compute/v2/fakes.py
@@ -377,6 +377,12 @@ class FakeServer(object):
'id': 'server-id-' + uuid.uuid4().hex,
'name': 'server-name-' + uuid.uuid4().hex,
'metadata': {},
+ 'image': {
+ 'id': 'image-id-' + uuid.uuid4().hex,
+ },
+ 'flavor': {
+ 'id': 'flavor-id-' + uuid.uuid4().hex,
+ }
}
# Overwrite default attributes.
diff --git a/openstackclient/tests/compute/v2/test_server.py b/openstackclient/tests/compute/v2/test_server.py
index 95188522..d379b173 100644
--- a/openstackclient/tests/compute/v2/test_server.py
+++ b/openstackclient/tests/compute/v2/test_server.py
@@ -12,7 +12,6 @@
# License for the specific language governing permissions and limitations
# under the License.
#
-
import mock
from mock import call
@@ -92,6 +91,7 @@ class TestServerCreate(TestServer):
'addresses',
'flavor',
'id',
+ 'image',
'name',
'networks',
'properties',
@@ -100,8 +100,9 @@ class TestServerCreate(TestServer):
def datalist(self):
datalist = (
'',
- self.flavor.name + ' ()',
+ self.flavor.name + ' (' + self.new_server.flavor.get('id') + ')',
self.new_server.id,
+ self.image.name + ' (' + self.new_server.image.get('id') + ')',
self.new_server.name,
self.new_server.networks,
'',
@@ -617,33 +618,32 @@ class TestServerList(TestServer):
'Properties',
)
- # Default search options, in the case of no commandline option specified.
- search_opts = {
- 'reservation_id': None,
- 'ip': None,
- 'ip6': None,
- 'name': None,
- 'instance_name': None,
- 'status': None,
- 'flavor': None,
- 'image': None,
- 'host': None,
- 'tenant_id': None,
- 'all_tenants': False,
- 'user_id': None,
- }
-
- # Default params of the core function of the command in the case of no
- # commandline option specified.
- kwargs = {
- 'search_opts': search_opts,
- 'marker': None,
- 'limit': None,
- }
-
def setUp(self):
super(TestServerList, self).setUp()
+ self.search_opts = {
+ 'reservation_id': None,
+ 'ip': None,
+ 'ip6': None,
+ 'name': None,
+ 'instance_name': None,
+ 'status': None,
+ 'flavor': None,
+ 'image': None,
+ 'host': None,
+ 'tenant_id': None,
+ 'all_tenants': False,
+ 'user_id': None,
+ }
+
+ # Default params of the core function of the command in the case of no
+ # commandline option specified.
+ self.kwargs = {
+ 'search_opts': self.search_opts,
+ 'marker': None,
+ 'limit': None,
+ }
+
# The fake servers' attributes. Use the original attributes names in
# nova, not the ones printed by "server list" command.
self.attrs = {
@@ -660,9 +660,14 @@ class TestServerList(TestServer):
# The servers to be listed.
self.servers = self.setup_servers_mock(3)
-
self.servers_mock.list.return_value = self.servers
+ self.image = image_fakes.FakeImage.create_one_image()
+ self.cimages_mock.get.return_value = self.image
+
+ self.flavor = compute_fakes.FakeFlavor.create_one_flavor()
+ self.flavors_mock.get.return_value = self.flavor
+
# Get the command object to test
self.cmd = server.ListServer(self.app, None)
@@ -721,6 +726,46 @@ class TestServerList(TestServer):
self.assertEqual(self.columns_long, columns)
self.assertEqual(tuple(self.data_long), tuple(data))
+ def test_server_list_with_image(self):
+
+ arglist = [
+ '--image', self.image.id
+ ]
+ verifylist = [
+ ('image', self.image.id)
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.cimages_mock.get.assert_called_with(self.image.id)
+
+ self.search_opts['image'] = self.image.id
+ self.servers_mock.list.assert_called_with(**self.kwargs)
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(tuple(self.data), tuple(data))
+
+ def test_server_list_with_flavor(self):
+
+ arglist = [
+ '--flavor', self.flavor.id
+ ]
+ verifylist = [
+ ('flavor', self.flavor.id)
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+ columns, data = self.cmd.take_action(parsed_args)
+
+ self.flavors_mock.get.assert_called_with(self.flavor.id)
+
+ self.search_opts['flavor'] = self.flavor.id
+ self.servers_mock.list.assert_called_with(**self.kwargs)
+
+ self.assertEqual(self.columns, columns)
+ self.assertEqual(tuple(self.data), tuple(data))
+
class TestServerLock(TestServer):