Fix test_flavor_extra_specs
This commit makes a number of changes to test_flavors_extra_specs
that cleans up a few of the tests in the file. Firstly, the
test_flavor_non_admin_set_get_unset_keys is split up into 3
separate tests. The original method, besides not working, was
testing 3 different permission cases. Secondly, an unused import
was removed. Thirdly, attrs were added for the negative tests in
the file. Lastly, all the try except blocks for the negative
tests were removed.
Change-Id: I4beba91918fc795628f2668b196a3bb150a610d8
diff --git a/tempest/tests/compute/admin/test_flavors_extra_specs.py b/tempest/tests/compute/admin/test_flavors_extra_specs.py
index 711b73f..01bff98 100644
--- a/tempest/tests/compute/admin/test_flavors_extra_specs.py
+++ b/tempest/tests/compute/admin/test_flavors_extra_specs.py
@@ -16,9 +16,9 @@
# under the License.
from tempest import exceptions
+from tempest.test import attr
from tempest.tests import compute
from tempest.tests.compute import base
-import testtools
class FlavorsExtraSpecsTestJSON(base.BaseComputeAdminTest):
@@ -80,51 +80,35 @@
self.client.unset_flavor_extra_spec(self.flavor['id'], "key1")
self.assertEqual(unset_resp.status, 200)
- @testtools.skip('Until bug 1094142 is resolved.')
- def test_flavor_non_admin_set_get_unset_keys(self):
- #Test to SET, GET UNSET flavor extra spec as a user
- #with out admin privileges.
- self.nonadmin_client = self.flavors_client
- #Assigning extra specs values that are to be set
+ @attr('negative')
+ def test_flavor_non_admin_set_keys(self):
+ #Test to SET flavor extra spec as a user without admin privileges.
specs = {"key1": "value1", "key2": "value2"}
- msg = None
+ self.assertRaises(exceptions.Unauthorized,
+ self.flavors_client.set_flavor_extra_spec,
+ self.flavor['id'],
+ specs)
- #Verify if able to SET flavor extraspec with non-admin user
- try:
- set_resp, set_body = \
- self.nonadmin_client.set_flavor_extra_spec(
- self.flavor['id'], specs)
- except exceptions.Unauthorized:
- pass
- else:
- msg = "Flavor extra specs is being SET"
- msg += " by unauthorized non-admin user.\n"
- #SET flavor extra specs with admin user
- #so as to check GET/UNSET flavor extra specs with non-admin
- set_resp, set_body =\
- self.client.set_flavor_extra_spec(self.flavor['id'], specs)
- #Verify if able to GET flavor extraspec with non-admin user
- try:
- get_resp, get_body = \
- self.nonadmin_client.get_flavor_extra_spec('')
- self.assertEqual(get_resp.status, 200)
- except Exception as e:
- msg += "Got an exception when GET Flavor extra specs"
- msg += " by non-admin user. Exception is: %s\n" % e
- #Verify if able to UNSET flavor extraspec with non-admin user
- try:
- unset_resp, _ = \
- self.nonadmin_client.unset_flavor_extra_spec(self.flavor['id'],
- "key1")
- except exceptions.Unauthorized:
- pass
- else:
- msg += "Flavor extra specs is being UNSET"
- msg += " by unauthorized non-admin user.\n"
- #Verification to check if actions failed.
- #msg variable would contain the message according to the failures.
- if msg is not None:
- self.fail(msg)
+ def test_flavor_non_admin_get_keys(self):
+ specs = {"key1": "value1", "key2": "value2"}
+ set_resp, set_body = self.client.set_flavor_extra_spec(
+ self.flavor['id'], specs)
+ resp, body = self.flavors_client.get_flavor_extra_spec(
+ self.flavor['id'])
+ self.assertEqual(resp.status, 200)
+ for key in specs:
+ self.assertEquals(body[key], specs[key])
+
+ @attr('negative')
+ def test_flavor_non_admin_unset_keys(self):
+ specs = {"key1": "value1", "key2": "value2"}
+ set_resp, set_body = self.client.set_flavor_extra_spec(
+ self.flavor['id'], specs)
+
+ self.assertRaises(exceptions.Unauthorized,
+ self.flavors_client.unset_flavor_extra_spec,
+ self.flavor['id'],
+ 'key1')
class FlavorsExtraSpecsTestXML(FlavorsExtraSpecsTestJSON):