Adds delete image tests
* Added test_delete_image module * Added smoke, positive, and negative tests Change-Id: Iba70e9bbcc8ab5fd5de970a5cd798bbd130adcb8
This commit is contained in:
@@ -85,6 +85,7 @@ class ComputeFixture(BaseTestFixture):
|
||||
cls.images_config,
|
||||
cls.flavors_config)
|
||||
cls.image_behaviors = ImageBehaviors(cls.images_client,
|
||||
cls.servers_client,
|
||||
cls.images_config)
|
||||
cls.flavors_client.add_exception_handler(ExceptionHandler())
|
||||
cls.resources = ResourcePool()
|
||||
|
||||
92
test_repo/compute/functional/images/test_delete_image.py
Normal file
92
test_repo/compute/functional/images/test_delete_image.py
Normal file
@@ -0,0 +1,92 @@
|
||||
"""
|
||||
Copyright 2013 Rackspace
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
"""
|
||||
|
||||
from cafe.drivers.unittest.decorators import tags
|
||||
from cloudcafe.compute.common.datagen import rand_name
|
||||
from cloudcafe.compute.common.exceptions import ItemNotFound, BadRequest
|
||||
from test_repo.compute.fixtures import CreateServerFixture
|
||||
|
||||
|
||||
class DeleteImageTest(CreateServerFixture):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(DeleteImageTest, cls).setUpClass()
|
||||
cls.name = rand_name('server')
|
||||
cls.server = cls.server_response.entity
|
||||
cls.image = cls.image_behaviors.create_active_image(
|
||||
cls.server.id).entity
|
||||
cls.resp = cls.images_client.delete_image(cls.image.id)
|
||||
cls.image_behaviors.wait_for_image_to_be_deleted(cls.image.id)
|
||||
|
||||
@tags(type='smoke', net='no')
|
||||
def test_delete_image_response_code(self):
|
||||
"""The response code for a delete image request should be 204."""
|
||||
self.assertEqual(self.resp.status_code, 204)
|
||||
|
||||
@tags(type='smoke', net='no')
|
||||
def test_deleted_image_not_listed(self):
|
||||
"""A deleted image should not be included in the list of images."""
|
||||
images = self.images_client.list_images_with_detail()
|
||||
image_ids = [image.id for image in images.entity]
|
||||
self.assertNotIn(self.image.id, image_ids)
|
||||
|
||||
images = self.images_client.list_images()
|
||||
image_ids = [image.id for image in images.entity]
|
||||
self.assertNotIn(self.image.id, image_ids)
|
||||
|
||||
@tags(type='positive', net='no')
|
||||
def test_deleted_image_listed_with_changes_since(self):
|
||||
"""
|
||||
A deleted image should be included in the list of images if
|
||||
the changes-since parameter is a time before the image was deleted
|
||||
"""
|
||||
|
||||
images = self.images_client.list_images_with_detail(
|
||||
changes_since=self.image.created)
|
||||
image_ids = [image.id for image in images.entity]
|
||||
self.assertIn(self.image.id, image_ids)
|
||||
|
||||
images = self.images_client.list_images(
|
||||
changes_since=self.image.created)
|
||||
image_ids = [image.id for image in images.entity]
|
||||
self.assertIn(self.image.id, image_ids)
|
||||
|
||||
@tags(type='negative', net='no')
|
||||
def test_get_for_deleted_image_fails(self):
|
||||
"""A get image request for a deleted image should fail."""
|
||||
with self.assertRaises(ItemNotFound):
|
||||
self.images_client.get_image(self.image.id)
|
||||
|
||||
@tags(type='negative', net='no')
|
||||
def test_delete_for_deleted_image_fails(self):
|
||||
"""A delete image request for a deleted image should fail."""
|
||||
with self.assertRaises(ItemNotFound):
|
||||
self.images_client.delete_image(self.image.id)
|
||||
|
||||
@tags(type='negative', net='no')
|
||||
def test_create_server_from_deleted_image_fails(self):
|
||||
"""A create server request using a deleted image should fail."""
|
||||
with self.assertRaises(BadRequest):
|
||||
self.servers_client.create_server('server',
|
||||
self.image.id,
|
||||
self.flavor_ref)
|
||||
|
||||
@tags(type='negative', net='no')
|
||||
def test_rebuild_server_from_deleted_image_fails(self):
|
||||
"""A rebuild server request using a deleted image should fail."""
|
||||
with self.assertRaises(BadRequest):
|
||||
self.servers_client.rebuild(self.server.id, self.image.id)
|
||||
Reference in New Issue
Block a user