diff --git a/glanceclient/tests/unit/v2/test_shell_v2.py b/glanceclient/tests/unit/v2/test_shell_v2.py index cddb9251..e79a42cd 100644 --- a/glanceclient/tests/unit/v2/test_shell_v2.py +++ b/glanceclient/tests/unit/v2/test_shell_v2.py @@ -644,6 +644,20 @@ class ShellV2Test(testtools.TestCase): self.assertEqual(2, mocked_print_err.call_count) mocked_utils_exit.assert_called_once_with() + @mock.patch.object(utils, 'exit') + @mock.patch.object(utils, 'print_err') + def test_do_image_delete_with_image_in_use(self, mocked_print_err, + mocked_utils_exit): + args = argparse.Namespace(id=['image1', 'image2']) + with mock.patch.object(self.gc.images, 'delete') as mocked_delete: + mocked_delete.side_effect = exc.HTTPConflict + + test_shell.do_image_delete(self.gc, args) + + self.assertEqual(2, mocked_delete.call_count) + self.assertEqual(2, mocked_print_err.call_count) + mocked_utils_exit.assert_called_once_with() + def test_do_image_delete_deleted(self): image_id = 'deleted-img' args = argparse.Namespace(id=[image_id]) diff --git a/glanceclient/v2/shell.py b/glanceclient/v2/shell.py index eaae374d..5f0728e1 100644 --- a/glanceclient/v2/shell.py +++ b/glanceclient/v2/shell.py @@ -338,6 +338,10 @@ def do_image_delete(gc, args): msg = "No image with an ID of '%s' exists." % args_id utils.print_err(msg) failure_flag = True + except exc.HTTPConflict: + msg = "Unable to delete image '%s' because it is in use." % args_id + utils.print_err(msg) + failure_flag = True except exc.HTTPException as e: msg = "'%s': Unable to delete image '%s'" % (e, args_id) utils.print_err(msg)