Use the admin client for the QoS tag tests
By default, the network QoS policies can be created, updated
and deleted only by an administrator. This patch changes the client
used for these tests.
Related-Bug: #2037002
Change-Id: I37f46cf8f7991d49966d5e4a4598ed17ae7d392a
(cherry picked from commit c80538bcc28202369dca4ef15af032f3d4fd45cf)
(cherry picked from commit 5421c9da25f7c0f699562152a872d79bfbf5a1ee)
diff --git a/neutron_tempest_plugin/api/admin/test_tag.py b/neutron_tempest_plugin/api/admin/test_tag.py
index eae7977..31b2b96 100644
--- a/neutron_tempest_plugin/api/admin/test_tag.py
+++ b/neutron_tempest_plugin/api/admin/test_tag.py
@@ -26,53 +26,55 @@
super(TagTestJSON, cls).resource_setup()
cls.res_id = cls._create_resource()
- def _get_and_compare_tags(self, tags):
- res_body = self.client.get_tags(self.resource, self.res_id)
+ def _get_and_compare_tags(self, tags, client):
+ res_body = client.get_tags(self.resource, self.res_id)
self.assertCountEqual(tags, res_body['tags'])
- def _test_tag_operations(self):
+ def _test_tag_operations(self, client=None):
+ client = client or self.client
# create and get tags
tags = ['red', 'blue']
- res_body = self.client.update_tags(self.resource, self.res_id, tags)
+ res_body = client.update_tags(self.resource, self.res_id, tags)
self.assertCountEqual(tags, res_body['tags'])
- self._get_and_compare_tags(tags)
+ self._get_and_compare_tags(tags, client)
# add a tag
- self.client.update_tag(self.resource, self.res_id, 'green')
- self._get_and_compare_tags(['red', 'blue', 'green'])
+ client.update_tag(self.resource, self.res_id, 'green')
+ self._get_and_compare_tags(['red', 'blue', 'green'], client)
# update tag exist
- self.client.update_tag(self.resource, self.res_id, 'red')
- self._get_and_compare_tags(['red', 'blue', 'green'])
+ client.update_tag(self.resource, self.res_id, 'red')
+ self._get_and_compare_tags(['red', 'blue', 'green'], client)
# add a tag with a dot
- self.client.update_tag(self.resource, self.res_id, 'black.or.white')
- self._get_and_compare_tags(['red', 'blue', 'green', 'black.or.white'])
+ client.update_tag(self.resource, self.res_id, 'black.or.white')
+ self._get_and_compare_tags(['red', 'blue', 'green', 'black.or.white'],
+ client)
# replace tags
tags = ['red', 'yellow', 'purple']
- res_body = self.client.update_tags(self.resource, self.res_id, tags)
+ res_body = client.update_tags(self.resource, self.res_id, tags)
self.assertCountEqual(tags, res_body['tags'])
- self._get_and_compare_tags(tags)
+ self._get_and_compare_tags(tags, client)
# get tag
- self.client.get_tag(self.resource, self.res_id, 'red')
+ client.get_tag(self.resource, self.res_id, 'red')
# get tag not exist
- self.assertRaises(lib_exc.NotFound, self.client.get_tag,
+ self.assertRaises(lib_exc.NotFound, client.get_tag,
self.resource, self.res_id, 'green')
# delete tag
- self.client.delete_tag(self.resource, self.res_id, 'red')
- self._get_and_compare_tags(['yellow', 'purple'])
+ client.delete_tag(self.resource, self.res_id, 'red')
+ self._get_and_compare_tags(['yellow', 'purple'], client)
# delete tag not exist
- self.assertRaises(lib_exc.NotFound, self.client.delete_tag,
+ self.assertRaises(lib_exc.NotFound, client.delete_tag,
self.resource, self.res_id, 'green')
# delete tags
- self.client.delete_tags(self.resource, self.res_id)
- self._get_and_compare_tags([])
+ client.delete_tags(self.resource, self.res_id)
+ self._get_and_compare_tags([], client)
class TagNetworkTestJSON(TagTestJSON):
@@ -198,7 +200,7 @@
@decorators.idempotent_id('e9bac15e-c8bc-4317-8295-4bf1d8d522b8')
@utils.requires_ext(extension="standard-attr-tag", service="network")
def test_qos_policy_tags(self):
- self._test_tag_operations()
+ self._test_tag_operations(client=self.admin_client)
class TagTrunkTestJSON(TagTestJSON):
@@ -225,16 +227,20 @@
@classmethod
def resource_setup(cls):
super(TagFilterTestJSON, cls).resource_setup()
+ try:
+ client = cls.tag_client
+ except AttributeError:
+ client = cls.client
cls.res_ids = []
for i in range(5):
cls.res_ids.append(cls._create_resource())
- cls.client.update_tags(cls.resource, cls.res_ids[0], ['red'])
- cls.client.update_tags(cls.resource, cls.res_ids[1], ['red', 'blue'])
- cls.client.update_tags(cls.resource, cls.res_ids[2],
- ['red', 'blue', 'green'])
- cls.client.update_tags(cls.resource, cls.res_ids[3], ['green'])
+ client.update_tags(cls.resource, cls.res_ids[0], ['red'])
+ client.update_tags(cls.resource, cls.res_ids[1], ['red', 'blue'])
+ client.update_tags(cls.resource, cls.res_ids[2],
+ ['red', 'blue', 'green'])
+ client.update_tags(cls.resource, cls.res_ids[3], ['green'])
# 5th resource: no tags
@classmethod
@@ -441,6 +447,11 @@
res = self.client.list_qos_policies(**filters)
return res[self.resource]
+ @classmethod
+ def resource_setup(cls):
+ cls.tag_client = cls.admin_client
+ super().resource_setup()
+
@decorators.attr(type='smoke')
@decorators.idempotent_id('c2f9a6ae-2529-4cb9-a44b-b16f8ba27832')
@utils.requires_ext(extension="standard-attr-tag", service="network")