Merge "Fix quota tests for static credentials" into mcp/stein
diff --git a/designate_tempest_plugin/tests/api/admin/test_quotas.py b/designate_tempest_plugin/tests/api/admin/test_quotas.py
index c25ad0a..1221b9f 100644
--- a/designate_tempest_plugin/tests/api/admin/test_quotas.py
+++ b/designate_tempest_plugin/tests/api/admin/test_quotas.py
@@ -36,6 +36,12 @@
credentials = ["admin"]
+ def setUp(self):
+ super(QuotasAdminTest, self).setUp()
+ _, original_quotas = self.admin_client.show_quotas()
+ self.addCleanup(self.admin_client.update_quotas,
+ **original_quotas['quota'])
+
@classmethod
def setup_credentials(cls):
# Do not create network resources for these test.
diff --git a/designate_tempest_plugin/tests/api/v2/test_quotas.py b/designate_tempest_plugin/tests/api/v2/test_quotas.py
index fe6c318..71a84e9 100644
--- a/designate_tempest_plugin/tests/api/v2/test_quotas.py
+++ b/designate_tempest_plugin/tests/api/v2/test_quotas.py
@@ -50,10 +50,23 @@
cls.quotas_client = cls.os_primary.quotas_client
cls.admin_client = cls.os_admin.quotas_client
- cls.alt_client = cls.os_alt.quotas_client
+
+ def _store_quotas(self, project_id=None, cleanup=True):
+ """Remember current quotas and reset them after the test"""
+ params = {}
+ if project_id:
+ params['project_id'] = project_id
+ params['headers'] = {'X-Auth-All-Projects': True}
+
+ _r, original_quotas = self.admin_client.show_quotas(**params)
+ params.update(original_quotas)
+ if cleanup:
+ self.addCleanup(self.admin_client.update_quotas, **params)
+ return original_quotas
@decorators.idempotent_id('1dac991a-9e2e-452c-a47a-26ac37381ec5')
def test_show_quotas(self):
+ self._store_quotas()
LOG.info("Updating quotas")
quotas = dns_data_utils.rand_quotas()
_, body = self.admin_client.update_quotas(**quotas)
@@ -67,6 +80,7 @@
@decorators.idempotent_id('0448b089-5803-4ce3-8a6c-5c15ff75a2cc')
def test_delete_quotas(self):
+ self._store_quotas()
LOG.info("Deleting quotas")
_, body = self.admin_client.delete_quotas()
@@ -75,10 +89,10 @@
@decorators.idempotent_id('76d24c87-1b39-4e19-947c-c08e1380dc61')
def test_update_quotas(self):
+ self._store_quotas()
LOG.info("Updating quotas")
quotas = dns_data_utils.rand_quotas()
_, body = self.admin_client.update_quotas(**quotas)
- self.addCleanup(self.admin_client.delete_quotas)
LOG.info("Ensuring the response has all quota types")
self.assertExpected(quotas, body, [])
@@ -87,6 +101,7 @@
def test_update_quotas_other_project(self):
project_id = self.quotas_client.tenant_id
+ self._store_quotas(project_id=project_id)
LOG.info("Updating quotas for %s ", project_id)
@@ -95,7 +110,6 @@
request['project_id'] = project_id
request['headers'] = {'X-Auth-All-Projects': True}
_, body = self.admin_client.update_quotas(**request)
- self.addCleanup(self.admin_client.delete_quotas, project_id=project_id)
LOG.info("Ensuring the response has all quota types")
self.assertExpected(quotas, body, [])
@@ -109,8 +123,13 @@
LOG.info("Using 'alt' project id to set quotas on.")
project_id = self.alt_client.tenant_id
+ self._store_quotas(project_id=project_id)
- _, original_quotas = self.admin_client.show_quotas(
+ LOG.info("Resetting quotas to default for %s ", project_id)
+ self.admin_client.delete_quotas(
+ project_id=project_id,
+ headers={'X-Auth-All-Projects': True})
+ _, default_quotas = self.admin_client.show_quotas(
project_id=project_id, headers={'X-Auth-All-Projects': True})
LOG.info("Updating quotas for %s ", project_id)
@@ -120,7 +139,6 @@
request['project_id'] = project_id
request['headers'] = {'X-Auth-All-Projects': True}
_, body = self.admin_client.update_quotas(**request)
- self.addCleanup(self.admin_client.delete_quotas, project_id=project_id)
self.admin_client.delete_quotas(
project_id=project_id,
@@ -129,7 +147,7 @@
_, final_quotas = self.admin_client.show_quotas(
project_id=project_id, headers={'X-Auth-All-Projects': True})
- self.assertExpected(original_quotas, final_quotas, [])
+ self.assertExpected(default_quotas, final_quotas, [])
@decorators.idempotent_id('9b09b3e2-7e88-4569-bce3-9be2f7ac70c4')
def test_update_quotas_invalid_project(self):
@@ -139,19 +157,17 @@
"is not being verified.")
project_id = 'project-that-does-not-exist'
+ original_quotas = self._store_quotas(project_id=project_id,
+ cleanup=False)
LOG.info("Updating quotas for non-existing %s ", project_id)
- _, original_quotas = self.admin_client.show_quotas(
- project_id=project_id, headers={'X-Auth-All-Projects': True})
-
quotas = dns_data_utils.rand_quotas()
request = quotas.copy()
request['project_id'] = project_id
request['headers'] = {'X-Auth-All-Projects': True}
with self.assertRaisesDns(lib_exc.BadRequest, 'invalid_project', 400):
self.admin_client.update_quotas(**request)
- self.addCleanup(self.admin_client.delete_quotas, project_id=project_id)
_, client_body = self.quotas_client.show_quotas()