glance image v1 member test cleaup
* Use private (not public) image for image member tests
* Use the alt_users tenant not a randomly selected tenant
* Increase the verbosity of the assertEqual int the test_remove_member
Change-Id: I3aac82f59e09998bf938ac364671d3d944d47a62
diff --git a/tempest/api/image/v1/test_image_members.py b/tempest/api/image/v1/test_image_members.py
index e9c395e..9ea9a3d 100644
--- a/tempest/api/image/v1/test_image_members.py
+++ b/tempest/api/image/v1/test_image_members.py
@@ -28,21 +28,26 @@
@classmethod
def setUpClass(cls):
super(ImageMembersTests, cls).setUpClass()
- admin = clients.AdminManager(interface='json')
- cls.admin_client = admin.identity_client
- cls.tenants = cls._get_tenants()
+ if cls.config.compute.allow_tenant_isolation:
+ creds = cls.isolated_creds.get_alt_creds()
+ username, tenant_name, password = creds
+ cls.os_alt = clients.Manager(username=username,
+ password=password,
+ tenant_name=tenant_name)
+ else:
+ cls.os_alt = clients.AltManager()
- @classmethod
- def _get_tenants(cls):
- resp, tenants = cls.admin_client.list_tenants()
- tenants = map(lambda x: x['id'], tenants)
- return tenants
+ alt_tenant_name = cls.os_alt.tenant_name
+ identity_client = cls._get_identity_admin_client()
+ _, tenants = identity_client.list_tenants()
+ cls.alt_tenant_id = [tnt['id'] for tnt in tenants if tnt['name'] ==
+ alt_tenant_name][0]
def _create_image(self):
image_file = StringIO.StringIO('*' * 1024)
resp, image = self.create_image(container_format='bare',
disk_format='raw',
- is_public=True,
+ is_public=False,
data=image_file)
self.assertEqual(201, resp.status)
image_id = image['id']
@@ -51,23 +56,23 @@
@attr(type='gate')
def test_add_image_member(self):
image = self._create_image()
- resp = self.client.add_member(self.tenants[0], image)
+ resp = self.client.add_member(self.alt_tenant_id, image)
self.assertEqual(204, resp.status)
resp, body = self.client.get_image_membership(image)
self.assertEqual(200, resp.status)
members = body['members']
members = map(lambda x: x['member_id'], members)
- self.assertIn(self.tenants[0], members)
+ self.assertIn(self.alt_tenant_id, members)
@attr(type='gate')
def test_get_shared_images(self):
image = self._create_image()
- resp = self.client.add_member(self.tenants[0], image)
+ resp = self.client.add_member(self.alt_tenant_id, image)
self.assertEqual(204, resp.status)
share_image = self._create_image()
- resp = self.client.add_member(self.tenants[0], share_image)
+ resp = self.client.add_member(self.alt_tenant_id, share_image)
self.assertEqual(204, resp.status)
- resp, body = self.client.get_shared_images(self.tenants[0])
+ resp, body = self.client.get_shared_images(self.alt_tenant_id)
self.assertEqual(200, resp.status)
images = body['shared_images']
images = map(lambda x: x['image_id'], images)
@@ -77,28 +82,28 @@
@attr(type='gate')
def test_remove_member(self):
image_id = self._create_image()
- resp = self.client.add_member(self.tenants[0], image_id)
+ resp = self.client.add_member(self.alt_tenant_id, image_id)
self.assertEqual(204, resp.status)
- resp = self.client.delete_member(self.tenants[0], image_id)
+ resp = self.client.delete_member(self.alt_tenant_id, image_id)
self.assertEqual(204, resp.status)
resp, body = self.client.get_image_membership(image_id)
self.assertEqual(200, resp.status)
members = body['members']
- self.assertEqual(0, len(members))
+ self.assertEqual(0, len(members), str(members))
@attr(type=['negative', 'gate'])
def test_add_member_with_non_existing_image(self):
# Add member with non existing image.
non_exist_image = rand_name('image_')
self.assertRaises(exceptions.NotFound, self.client.add_member,
- self.tenants[0], non_exist_image)
+ self.alt_tenant_id, non_exist_image)
@attr(type=['negative', 'gate'])
def test_delete_member_with_non_existing_image(self):
# Delete member with non existing image.
non_exist_image = rand_name('image_')
self.assertRaises(exceptions.NotFound, self.client.delete_member,
- self.tenants[0], non_exist_image)
+ self.alt_tenant_id, non_exist_image)
@attr(type=['negative', 'gate'])
def test_delete_member_with_non_existing_tenant(self):