add functional tests for identity v2
add tests for endpoint and service. Change-Id: Iec80106d6e4c310cea1c5af262d145ac1f56525e Implements: blueprint identity-functional-tests
This commit is contained in:
		
							
								
								
									
										38
									
								
								functional/tests/identity/v2/test_endpoint.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								functional/tests/identity/v2/test_endpoint.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,38 @@ | |||||||
|  | #    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 functional.tests.identity.v2 import test_identity | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class EndpointTests(test_identity.IdentityTests): | ||||||
|  |  | ||||||
|  |     def test_endpoint_create(self): | ||||||
|  |         self._create_dummy_endpoint() | ||||||
|  |  | ||||||
|  |     def test_endpoint_delete(self): | ||||||
|  |         endpoint_id = self._create_dummy_endpoint(add_clean_up=False) | ||||||
|  |         raw_output = self.openstack( | ||||||
|  |             'endpoint delete %s' % endpoint_id) | ||||||
|  |         self.assertEqual(0, len(raw_output)) | ||||||
|  |  | ||||||
|  |     def test_endpoint_list(self): | ||||||
|  |         endpoint_id = self._create_dummy_endpoint() | ||||||
|  |         raw_output = self.openstack('endpoint list') | ||||||
|  |         self.assertInOutput(endpoint_id, raw_output) | ||||||
|  |         items = self.parse_listing(raw_output) | ||||||
|  |         self.assert_table_structure(items, self.ENDPOINT_LIST_HEADERS) | ||||||
|  |  | ||||||
|  |     def test_endpoint_show(self): | ||||||
|  |         endpoint_id = self._create_dummy_endpoint() | ||||||
|  |         raw_output = self.openstack('endpoint show %s' % endpoint_id) | ||||||
|  |         items = self.parse_show(raw_output) | ||||||
|  |         self.assert_show_fields(items, self.ENDPOINT_FIELDS) | ||||||
| @@ -25,12 +25,17 @@ class IdentityTests(test.TestCase): | |||||||
|     PROJECT_FIELDS = ['enabled', 'id', 'name', 'description', 'domain_id'] |     PROJECT_FIELDS = ['enabled', 'id', 'name', 'description', 'domain_id'] | ||||||
|     TOKEN_FIELDS = ['expires', 'id', 'project_id', 'user_id'] |     TOKEN_FIELDS = ['expires', 'id', 'project_id', 'user_id'] | ||||||
|     ROLE_FIELDS = ['id', 'name', 'links'] |     ROLE_FIELDS = ['id', 'name', 'links'] | ||||||
|  |     SERVICE_FIELDS = ['id', 'enabled', 'name', 'type', 'description'] | ||||||
|  |     ENDPOINT_FIELDS = ['id', 'region', 'service_id', 'service_name', | ||||||
|  |                        'service_type', 'enabled', 'publicurl', | ||||||
|  |                        'adminurl', 'internalurl'] | ||||||
|  |  | ||||||
|     EC2_CREDENTIALS_FIELDS = ['access', 'project_id', 'secret', |     EC2_CREDENTIALS_FIELDS = ['access', 'project_id', 'secret', | ||||||
|                               'trust_id', 'user_id'] |                               'trust_id', 'user_id'] | ||||||
|     EC2_CREDENTIALS_LIST_HEADERS = ['Access', 'Secret', |     EC2_CREDENTIALS_LIST_HEADERS = ['Access', 'Secret', | ||||||
|                                     'Project ID', 'User ID'] |                                     'Project ID', 'User ID'] | ||||||
|     CATALOG_LIST_HEADERS = ['Name', 'Type', 'Endpoints'] |     CATALOG_LIST_HEADERS = ['Name', 'Type', 'Endpoints'] | ||||||
|  |     ENDPOINT_LIST_HEADERS = ['ID', 'Region', 'Service Name', 'Service Type'] | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     def setUpClass(cls): |     def setUpClass(cls): | ||||||
| @@ -127,3 +132,48 @@ class IdentityTests(test.TestCase): | |||||||
|             self.addCleanup(self.openstack, |             self.addCleanup(self.openstack, | ||||||
|                             'token revoke %s' % token['id']) |                             'token revoke %s' % token['id']) | ||||||
|         return token['id'] |         return token['id'] | ||||||
|  |  | ||||||
|  |     def _create_dummy_service(self, add_clean_up=True): | ||||||
|  |         service_name = data_utils.rand_name('TestService') | ||||||
|  |         description = data_utils.rand_name('description') | ||||||
|  |         type_name = data_utils.rand_name('TestType') | ||||||
|  |         raw_output = self.openstack( | ||||||
|  |             'service create ' | ||||||
|  |             '--name %(name)s ' | ||||||
|  |             '--description %(description)s ' | ||||||
|  |             '%(type)s' % {'name': service_name, | ||||||
|  |                           'description': description, | ||||||
|  |                           'type': type_name}) | ||||||
|  |         items = self.parse_show(raw_output) | ||||||
|  |         self.assert_show_fields(items, self.SERVICE_FIELDS) | ||||||
|  |         if add_clean_up: | ||||||
|  |             service = self.parse_show_as_object(raw_output) | ||||||
|  |             self.addCleanup(self.openstack, | ||||||
|  |                             'service delete %s' % service['id']) | ||||||
|  |         return service_name | ||||||
|  |  | ||||||
|  |     def _create_dummy_endpoint(self, add_clean_up=True): | ||||||
|  |         region_id = data_utils.rand_name('TestRegion') | ||||||
|  |         service_name = self._create_dummy_service() | ||||||
|  |         public_url = data_utils.rand_url() | ||||||
|  |         admin_url = data_utils.rand_url() | ||||||
|  |         internal_url = data_utils.rand_url() | ||||||
|  |         raw_output = self.openstack( | ||||||
|  |             'endpoint create ' | ||||||
|  |             '--publicurl %(publicurl)s ' | ||||||
|  |             '--adminurl %(adminurl)s ' | ||||||
|  |             '--internalurl %(internalurl)s ' | ||||||
|  |             '--region %(region)s ' | ||||||
|  |             '%(service)s' % {'publicurl': public_url, | ||||||
|  |                              'adminurl': admin_url, | ||||||
|  |                              'internalurl': internal_url, | ||||||
|  |                              'region': region_id, | ||||||
|  |                              'service': service_name}) | ||||||
|  |         items = self.parse_show(raw_output) | ||||||
|  |         self.assert_show_fields(items, self.ENDPOINT_FIELDS) | ||||||
|  |         endpoint = self.parse_show_as_object(raw_output) | ||||||
|  |         if add_clean_up: | ||||||
|  |             self.addCleanup( | ||||||
|  |                 self.openstack, | ||||||
|  |                 'endpoint delete %s' % endpoint['id']) | ||||||
|  |         return endpoint['id'] | ||||||
|   | |||||||
							
								
								
									
										37
									
								
								functional/tests/identity/v2/test_service.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								functional/tests/identity/v2/test_service.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,37 @@ | |||||||
|  | #    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 functional.tests.identity.v2 import test_identity | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class ServiceTests(test_identity.IdentityTests): | ||||||
|  |  | ||||||
|  |     def test_service_create(self): | ||||||
|  |         self._create_dummy_service() | ||||||
|  |  | ||||||
|  |     def test_service_delete(self): | ||||||
|  |         service_name = self._create_dummy_service(add_clean_up=False) | ||||||
|  |         raw_output = self.openstack('service delete %s' % service_name) | ||||||
|  |         self.assertEqual(0, len(raw_output)) | ||||||
|  |  | ||||||
|  |     def test_service_list(self): | ||||||
|  |         self._create_dummy_service() | ||||||
|  |         raw_output = self.openstack('service list') | ||||||
|  |         items = self.parse_listing(raw_output) | ||||||
|  |         self.assert_table_structure(items, test_identity.BASIC_LIST_HEADERS) | ||||||
|  |  | ||||||
|  |     def test_service_show(self): | ||||||
|  |         service_name = self._create_dummy_service() | ||||||
|  |         raw_output = self.openstack( | ||||||
|  |             'service show %s' % service_name) | ||||||
|  |         items = self.parse_show(raw_output) | ||||||
|  |         self.assert_show_fields(items, self.SERVICE_FIELDS) | ||||||
		Reference in New Issue
	
	Block a user
	 Guojian Shao
					Guojian Shao