From 8d981e61e79a5fadb5707ceb04a983c7d03c96d1 Mon Sep 17 00:00:00 2001 From: Ansuman Bebarta Date: Wed, 20 Nov 2019 20:36:50 +0530 Subject: [PATCH] Extend test cases for customer service - test_list_customers_with_filters: Add a new filter for key value metadata search - test_replace_customer: Change to test description update - test_list_customer_additional_fields: Verify whether new properties are part of get - test_disable_customer: Verify disable customer - test_create_customer_with_uuid: Verify customer can be created by providing uuid in create payload - test_replace_customer_quota: Verify quota of customer can be updated Change-Id: I777002cbfd52219f8d828b88de02bde9962b758a --- .../tests/api/test_customers.py | 60 ++++++++++++++++++- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/ranger_tempest_plugin/tests/api/test_customers.py b/ranger_tempest_plugin/tests/api/test_customers.py index 009ac05..f154ed7 100755 --- a/ranger_tempest_plugin/tests/api/test_customers.py +++ b/ranger_tempest_plugin/tests/api/test_customers.py @@ -14,6 +14,7 @@ # under the License. import random +import uuid from ranger_tempest_plugin.data_utils import data_utils from ranger_tempest_plugin.tests.api import cms_base @@ -67,6 +68,14 @@ class TestTempestCms(cms_base.CmsBaseOrmTest): region_name) return region + def _create_customer(self, post_body): + customer_id = self._create_cust_validate_creation_on_dcp_and_lcp( + **post_body) + self.addCleanup( + self._del_cust_validate_deletion_on_dcp_and_lcp, + customer_id) + return customer_id + @decorators.idempotent_id('6072c438-1e45-4c0b-97a6-e5127bd33d89') def test_get_customer(self): """Execute 'get_customer' using the following options @@ -87,6 +96,7 @@ class TestTempestCms(cms_base.CmsBaseOrmTest): - no filter (i.e. list all customers) - filter by metadata key + - filter by metadata key value pair - filter by region - filter by default user id - customer name contains a substring @@ -102,18 +112,23 @@ class TestTempestCms(cms_base.CmsBaseOrmTest): # get the first key from metadata as the metadata key filter metadata_key = list(self.setup_customer['metadata'].keys())[0] + metadata_value = self.setup_customer['metadata'][metadata_key] # define the list customer filters to be used for this test no_filter = None metadata_filter = {'metadata': metadata_key} + metadata_kv_filter = { + 'metadata': '%s:%s' % (metadata_key, metadata_value) + } region_filter = {'region': region_name[0]} user_filter = {'user': userid[0]} contains_filter = {'contains': cust_name[substr_name:]} startswith_filter = {'starts_with': cust_name[:substr_name]} # execute list_customers with the available filters - for list_filter in [no_filter, metadata_filter, region_filter, - user_filter, contains_filter, startswith_filter]: + for list_filter in [no_filter, metadata_filter, metadata_kv_filter, + region_filter, user_filter, + contains_filter, startswith_filter]: _, body = self.client.list_customers(list_filter) customers = [cust['id'] for cust in body['customers']] self.assertIn(self.setup_customer_id, customers) @@ -353,12 +368,14 @@ class TestTempestCms(cms_base.CmsBaseOrmTest): def test_replace_customer(self): customer = self._get_bare_customer_params() customer['name'] = self.setup_customer['name'] + customer['description'] = 'test customer' customer['regions'] = [{'name': CONF.identity.region}] _, body = self.client.update_customer(self.setup_customer_id, customer) self._wait_for_status(self.setup_customer_id, 'Success') _, body = self.client.get_customer(self.setup_customer_id) - self.assert_expected(customer, body, ['name', 'regions']) + self.assert_expected(customer, body, + ['name', 'description', 'regions']) for region in customer['regions']: self.assertIn(region['name'], [x['name'] for x in body['regions']]) @@ -424,3 +441,40 @@ class TestTempestCms(cms_base.CmsBaseOrmTest): # Notification to ORD failed self.assertEqual(body['status'], 'Error') self.assertEqual(body['custId'], test_customer_id) + + @decorators.idempotent_id('49e08cd0-4d33-4ec4-95a0-500974b3a9bf') + def test_list_customer_additional_fields(self): + _, customer = self.client.get_customer(self.setup_customer_id) + self.assertIn('status', customer) + self.assertIn('regions', customer) + + @decorators.idempotent_id('edf3a30a-fca8-49d0-acc6-c3190c6feb43') + def test_disable_customer(self): + self.client.enable_customer(self.setup_customer_id, False) + self._wait_for_status(self.setup_customer_id, 'Success') + _, body = self.client.get_customer(self.setup_customer_id) + self.assertFalse(body['enabled']) + + @decorators.idempotent_id('7787b712-c398-47b6-8bf6-345be85e6daa') + def test_create_customer_with_uuid(self): + post_body = self._get_customer_params(quota=False) + uuid_ = uuid.uuid4().hex + post_body['uuid'] = uuid_ + test_customer_id = self._create_customer(post_body) + _, customer = self.client.get_customer(test_customer_id) + self.assertEqual(customer['uuid'], uuid_) + + @decorators.idempotent_id('8bd31cee-825a-4542-aa1d-bf2d79dbac62') + def test_replace_customer_quota(self): + customer = self._get_bare_customer_params() + customer['name'] = self.setup_customer['name'] + customer['regions'] = [{'name': CONF.identity.region}] + quota = self.setup_customer['defaultQuotas'][0] + quota['compute'][0]['ram'] = '20' + customer['defaultQuotas'] = [quota] + _, body = self.client.update_customer(self.setup_customer_id, + customer) + self._wait_for_status(self.setup_customer_id, 'Success') + _, body = self.client.get_customer(self.setup_customer_id) + self.assertEqual(len(body['defaultQuotas']), 1) + self.assertDictEqual(quota, body['defaultQuotas'][0])