From 1ecf1bee2d5c1566533cdd8fad99733ea8336aa8 Mon Sep 17 00:00:00 2001 From: Dean Troyer Date: Thu, 18 Sep 2014 00:56:38 -0500 Subject: Begin low-level API for Image v1 and v2 image list for v1 and v2: * Add --public|--private to command parsers * Implement local public/private filtering for v1 image_list() * Pass public/private filter to server for v2 image_list() Change-Id: Ie7c24ea2d1bf2b3b1b7fa342eb45fee45894634d --- openstackclient/tests/image/v1/test_image.py | 167 +++++++++++++++++++-------- openstackclient/tests/image/v2/test_image.py | 94 +++++++++++++-- 2 files changed, 208 insertions(+), 53 deletions(-) (limited to 'openstackclient/tests/image') diff --git a/openstackclient/tests/image/v1/test_image.py b/openstackclient/tests/image/v1/test_image.py index 4d21ac48..95126c2d 100644 --- a/openstackclient/tests/image/v1/test_image.py +++ b/openstackclient/tests/image/v1/test_image.py @@ -300,6 +300,128 @@ class TestImageDelete(TestImage): ) +class TestImageList(TestImage): + + def setUp(self): + super(TestImageList, self).setUp() + + self.api_mock = mock.Mock() + self.api_mock.image_list.return_value = [ + copy.deepcopy(image_fakes.IMAGE), + ] + self.app.client_manager.image.api = self.api_mock + + # Get the command object to test + self.cmd = image.ListImage(self.app, None) + + def test_image_list_no_options(self): + arglist = [] + verifylist = [ + ('public', False), + ('private', False), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + detailed=False, + ) + + collist = ('ID', 'Name') + + self.assertEqual(columns, collist) + datalist = (( + image_fakes.image_id, + image_fakes.image_name, + ), ) + self.assertEqual(datalist, tuple(data)) + + def test_image_list_public_option(self): + arglist = [ + '--public', + ] + verifylist = [ + ('public', True), + ('private', False), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + detailed=False, + public=True, + ) + + collist = ('ID', 'Name') + + self.assertEqual(columns, collist) + datalist = (( + image_fakes.image_id, + image_fakes.image_name, + ), ) + self.assertEqual(datalist, tuple(data)) + + def test_image_list_private_option(self): + arglist = [ + '--private', + ] + verifylist = [ + ('public', False), + ('private', True), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + detailed=False, + private=True, + ) + + collist = ('ID', 'Name') + + self.assertEqual(columns, collist) + datalist = (( + image_fakes.image_id, + image_fakes.image_name, + ), ) + self.assertEqual(datalist, tuple(data)) + + def test_image_list_long_option(self): + arglist = [ + '--long', + ] + verifylist = [ + ('long', True), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + detailed=True, + ) + + collist = ('ID', 'Name', 'Disk Format', 'Container Format', + 'Size', 'Status') + + self.assertEqual(columns, collist) + datalist = (( + image_fakes.image_id, + image_fakes.image_name, + '', + '', + '', + '', + ), ) + self.assertEqual(datalist, tuple(data)) + + class TestImageSet(TestImage): def setUp(self): @@ -453,48 +575,3 @@ class TestImageSet(TestImage): image_fakes.image_id, **kwargs ) - - -class TestImageList(TestImage): - - def setUp(self): - super(TestImageList, self).setUp() - - # This is the return value for utils.find_resource() - self.images_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(image_fakes.IMAGE), - loaded=True, - ), - ] - - # Get the command object to test - self.cmd = image.ListImage(self.app, None) - - def test_image_list_long_option(self): - arglist = [ - '--long', - ] - verifylist = [ - ('long', True), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - # DisplayCommandBase.take_action() returns two tuples - columns, data = self.cmd.take_action(parsed_args) - self.images_mock.list.assert_called_with() - - collist = ('ID', 'Name', 'Disk Format', 'Container Format', - 'Size', 'Status') - - self.assertEqual(columns, collist) - datalist = (( - image_fakes.image_id, - image_fakes.image_name, - '', - '', - '', - '', - ), ) - self.assertEqual(datalist, tuple(data)) diff --git a/openstackclient/tests/image/v2/test_image.py b/openstackclient/tests/image/v2/test_image.py index bc61a89f..8fb31caa 100644 --- a/openstackclient/tests/image/v2/test_image.py +++ b/openstackclient/tests/image/v2/test_image.py @@ -14,6 +14,7 @@ # import copy +import mock from openstackclient.image.v2 import image from openstackclient.tests import fakes @@ -68,18 +69,93 @@ class TestImageList(TestImage): def setUp(self): super(TestImageList, self).setUp() - # This is the return value for utils.find_resource() - self.images_mock.list.return_value = [ - fakes.FakeResource( - None, - copy.deepcopy(image_fakes.IMAGE), - loaded=True, - ), + self.api_mock = mock.Mock() + self.api_mock.image_list.return_value = [ + copy.deepcopy(image_fakes.IMAGE), ] + self.app.client_manager.image.api = self.api_mock # Get the command object to test self.cmd = image.ListImage(self.app, None) + def test_image_list_no_options(self): + arglist = [] + verifylist = [ + ('public', False), + ('private', False), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + detailed=False, + ) + + collist = ('ID', 'Name') + + self.assertEqual(columns, collist) + datalist = (( + image_fakes.image_id, + image_fakes.image_name, + ), ) + self.assertEqual(datalist, tuple(data)) + + def test_image_list_public_option(self): + arglist = [ + '--public', + ] + verifylist = [ + ('public', True), + ('private', False), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + detailed=False, + public=True, + ) + + collist = ('ID', 'Name') + + self.assertEqual(columns, collist) + datalist = (( + image_fakes.image_id, + image_fakes.image_name, + ), ) + self.assertEqual(datalist, tuple(data)) + + def test_image_list_private_option(self): + arglist = [ + '--private', + ] + verifylist = [ + ('public', False), + ('private', True), + ('long', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + # DisplayCommandBase.take_action() returns two tuples + columns, data = self.cmd.take_action(parsed_args) + self.api_mock.image_list.assert_called_with( + detailed=False, + private=True, + ) + + collist = ('ID', 'Name') + + self.assertEqual(columns, collist) + datalist = (( + image_fakes.image_id, + image_fakes.image_name, + ), ) + self.assertEqual(datalist, tuple(data)) + def test_image_list_long_option(self): arglist = [ '--long', @@ -91,7 +167,9 @@ class TestImageList(TestImage): # DisplayCommandBase.take_action() returns two tuples columns, data = self.cmd.take_action(parsed_args) - self.images_mock.list.assert_called_with() + self.api_mock.image_list.assert_called_with( + detailed=True, + ) collist = ('ID', 'Name', 'Disk Format', 'Container Format', 'Size', 'Status') -- cgit v1.2.1