diff options
| author | Terry Howe <terrylhowe@gmail.com> | 2014-02-26 12:13:01 -0700 |
|---|---|---|
| committer | Terry Howe <terrylhowe@gmail.com> | 2014-03-05 11:26:13 -0700 |
| commit | e6e0dbf754c4dbc631e5c797b50d8032481a1a27 (patch) | |
| tree | 976236c94e2619e1b5425595e0c5e9b5330d8be5 /openstackclient/tests | |
| parent | b7f673cb81f1a6539739dc6d12eaef7455bf63fd (diff) | |
| download | python-openstackclient-e6e0dbf754c4dbc631e5c797b50d8032481a1a27.tar.gz | |
Add --volume option to image create command
Add ability to create an image from a volume.
* Added --volume command to image create
* Added --force option to image create
* Added block to access volume manager in image create
* Tests added for the volume option
Change-Id: I3910a2b5e04acd0d15dd230747ba6ebca07aa316
Closes-Bug: #1207615
Diffstat (limited to 'openstackclient/tests')
| -rw-r--r-- | openstackclient/tests/image/v1/test_image.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/openstackclient/tests/image/v1/test_image.py b/openstackclient/tests/image/v1/test_image.py index a410674d..d7547f76 100644 --- a/openstackclient/tests/image/v1/test_image.py +++ b/openstackclient/tests/image/v1/test_image.py @@ -14,6 +14,7 @@ # import copy +import mock from openstackclient.image.v1 import image from openstackclient.tests import fakes @@ -30,6 +31,81 @@ class TestImage(image_fakes.TestImagev1): self.images_mock.reset_mock() +class TestImageCreate(TestImage): + + def setUp(self): + super(TestImageCreate, self).setUp() + self.images_mock.get.return_value = fakes.FakeResource( + None, + copy.deepcopy(image_fakes.IMAGE), + loaded=True, + ) + self.cmd = image.CreateImage(self.app, None) + + def test_create_volume(self): + arglist = [ + '--volume', 'volly', + image_fakes.image_name, + ] + verifylist = [ + ('volume', 'volly'), + ('name', image_fakes.image_name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.app.client_manager.volume = mock.Mock() + self.app.client_manager.volume.volumes = mock.Mock() + volumes = self.app.client_manager.volume.volumes + volumes.upload_to_image = mock.Mock() + response = {"id": 'volume_id', + "updated_at": 'updated_at', + "status": 'uploading', + "display_description": 'desc', + "size": 'size', + "volume_type": 'volume_type', + "image_id": 'image1', + "container_format": parsed_args.container_format, + "disk_format": parsed_args.disk_format, + "image_name": parsed_args.name} + full_response = {"os-volume_upload_image": response} + volumes.upload_to_image.return_value = (201, full_response) + volume_resource = fakes.FakeResource( + None, + copy.deepcopy({'id': 'vol1', 'name': 'volly'}), + loaded=True, + ) + volumes.get.return_value = volume_resource + results = self.cmd.take_action(parsed_args) + volumes.upload_to_image.assert_called_with( + volume_resource, + False, + image_fakes.image_name, + 'bare', + 'raw', + ) + expects = [('container_format', + 'disk_format', + 'display_description', + 'id', + 'image_id', + 'image_name', + 'size', + 'status', + 'updated_at', + 'volume_type'), + ('bare', + 'raw', + 'desc', + 'volume_id', + 'image1', + 'graven', + 'size', + 'uploading', + 'updated_at', + 'volume_type')] + for expected, result in zip(expects, results): + self.assertEqual(expected, result) + + class TestImageDelete(TestImage): def setUp(self): |
