Merge "Removes assertGreaterEqual for Python 2.6 backward compat"
diff --git a/tempest/services/identity/json/identity_client.py b/tempest/services/identity/json/identity_client.py
index 9cc30d9..403a3ac 100644
--- a/tempest/services/identity/json/identity_client.py
+++ b/tempest/services/identity/json/identity_client.py
@@ -197,6 +197,12 @@
body = json.loads(body)
return resp, body['OS-KSADM:service']
+ def list_services(self):
+ """List Service - Returns Services."""
+ resp, body = self.get('/OS-KSADM/services/')
+ body = json.loads(body)
+ return resp, body['OS-KSADM:services']
+
def delete_service(self, service_id):
"""Delete Service."""
url = '/OS-KSADM/services/%s' % service_id
diff --git a/tempest/services/identity/xml/identity_client.py b/tempest/services/identity/xml/identity_client.py
index 02be91e..f79c3d5 100644
--- a/tempest/services/identity/xml/identity_client.py
+++ b/tempest/services/identity/xml/identity_client.py
@@ -226,6 +226,12 @@
body = self._parse_body(etree.fromstring(body))
return resp, body
+ def list_services(self):
+ """Returns services."""
+ resp, body = self.get('OS-KSADM/services', self.headers)
+ body = self._parse_array(etree.fromstring(body))
+ return resp, body
+
def get_service(self, service_id):
"""Get Service."""
url = '/OS-KSADM/services/%s' % service_id
diff --git a/tempest/tests/identity/admin/test_services.py b/tempest/tests/identity/admin/test_services.py
index 5261b9d..73f4a90 100644
--- a/tempest/tests/identity/admin/test_services.py
+++ b/tempest/tests/identity/admin/test_services.py
@@ -16,6 +16,9 @@
# under the License.
+from nose.plugins.attrib import attr
+import unittest2 as unittest
+
from tempest.common.utils.data_utils import rand_name
from tempest import exceptions
from tempest.tests.identity import base
@@ -30,8 +33,8 @@
name = rand_name('service-')
type = rand_name('type--')
description = rand_name('description-')
- resp, service_data = \
- self.client.create_service(name, type, description=description)
+ resp, service_data = self.client.create_service(
+ name, type, description=description)
self.assertTrue(resp['status'].startswith('2'))
#Verifying response body of create service
self.assertTrue('id' in service_data)
@@ -63,6 +66,32 @@
self.assertRaises(exceptions.NotFound, self.client.get_service,
service_data['id'])
+ def test_list_services(self):
+ # Create, List, Verify and Delete Services
+ services = []
+ for _ in xrange(3):
+ name = rand_name('service-')
+ type = rand_name('type--')
+ description = rand_name('description-')
+ resp, service = self.client.create_service(
+ name, type, description=description)
+ services.append(service)
+ service_ids = map(lambda x: x['id'], services)
+
+ # List and Verify Services
+ resp, body = self.client.list_services()
+ self.assertTrue(resp['status'].startswith('2'))
+ found = [service for service in body if service['id'] in service_ids]
+ self.assertEqual(len(found), len(services), 'Services not found')
+
+ # Delete Services
+ for service in services:
+ resp, body = self.client.delete_service(service['id'])
+ self.assertTrue(resp['status'].startswith('2'))
+ resp, body = self.client.list_services()
+ found = [service for service in body if service['id'] in service_ids]
+ self.assertFalse(any(found), 'Services failed to delete')
+
class ServicesTestJSON(base.BaseIdentityAdminTestJSON, ServicesTestBase):
@classmethod