Reuse tempest to create admin client manager
The previous code doesn't support PreProvisionedCredentialProvider, it
was getting admin credentials from tempest config file which are not set
when using test_accounts_file.
Change-Id: Ia34d08ad659b095a114c27d6d596507f7922149a
diff --git a/patrole_tempest_plugin/tests/api/identity/rbac_base.py b/patrole_tempest_plugin/tests/api/identity/rbac_base.py
index 4321c60..aa5cd4b 100644
--- a/patrole_tempest_plugin/tests/api/identity/rbac_base.py
+++ b/patrole_tempest_plugin/tests/api/identity/rbac_base.py
@@ -77,7 +77,6 @@
class BaseIdentityV3RbacTest(BaseIdentityRbacTest):
identity_version = 'v3'
- credentials = ['primary']
@classmethod
def setup_clients(cls):
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py
index 16a7893..45eb601 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py
@@ -23,7 +23,7 @@
class IdentityTokenV3RbacTest(rbac_base.BaseIdentityV3RbacTest):
- credentials = ['primary', 'alt']
+ credentials = ['primary', 'alt', 'admin']
@classmethod
def skip_checks(cls):
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
index 23c75c6..da29433 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
@@ -27,7 +27,7 @@
class IdentityTrustV3RbacTest(rbac_base.BaseIdentityV3RbacTest):
- credentials = ['primary', 'alt']
+ credentials = ['primary', 'alt', 'admin']
@classmethod
def skip_checks(cls):
diff --git a/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py b/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py
index 43a5e57..9450676 100644
--- a/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py
+++ b/patrole_tempest_plugin/tests/api/image/test_images_member_rbac.py
@@ -21,7 +21,7 @@
class ImagesMemberRbacTest(base.BaseV2ImageRbacTest):
- credentials = ['primary', 'alt']
+ credentials = ['primary', 'alt', 'admin']
@classmethod
def resource_setup(cls):
diff --git a/patrole_tempest_plugin/tests/unit/fixtures.py b/patrole_tempest_plugin/tests/unit/fixtures.py
index 98eb66c..01b99db 100644
--- a/patrole_tempest_plugin/tests/unit/fixtures.py
+++ b/patrole_tempest_plugin/tests/unit/fixtures.py
@@ -19,7 +19,6 @@
import fixtures
import time
-from tempest.common import credentials_factory as credentials
from tempest import config
from tempest import test
@@ -55,6 +54,7 @@
class FakeBaseRbacTest(rbac_utils.RbacUtilsMixin, test.BaseTestCase):
+ credentials = []
os_primary = None
def runTest(self):
@@ -91,13 +91,20 @@
# time.sleep is a test optimization.
self.mock_time = self.patchobject(rbac_utils, 'time',
__name__='mock_time', spec=time)
- self.patchobject(credentials, 'get_configured_admin_credentials',
- spec=object)
- mock_admin_mgr = self.patchobject(rbac_utils.clients, 'Manager',
- spec=rbac_utils.clients.Manager,
- roles_v3_client=mock.Mock(),
- roles_client=mock.Mock())
- self.admin_roles_client = mock_admin_mgr.return_value.roles_v3_client
+
+ test_obj_kwargs = {
+ 'credentials.user_id': self.USER_ID,
+ 'credentials.tenant_id': self.PROJECT_ID,
+ 'credentials.project_id': self.PROJECT_ID,
+ }
+
+ class FakeRbacTest(FakeBaseRbacTest):
+ os_primary = mock.Mock()
+ os_admin = mock.Mock()
+
+ FakeRbacTest.os_primary.configure_mock(**test_obj_kwargs)
+
+ self.admin_roles_client = FakeRbacTest.os_admin.roles_v3_client
self.admin_roles_client.list_all_role_inference_rules.return_value = {
"role_inferences": [
{
@@ -115,22 +122,12 @@
set(self._rbac_test_roles))
self.set_roles(list(default_roles), [])
- test_obj_kwargs = {
- 'credentials.user_id': self.USER_ID,
- 'credentials.tenant_id': self.PROJECT_ID,
- 'credentials.project_id': self.PROJECT_ID,
- }
-
- class FakeRbacTest(FakeBaseRbacTest):
- os_primary = mock.Mock()
-
- FakeRbacTest.os_primary.configure_mock(**test_obj_kwargs)
-
FakeRbacTest.setUpClass()
self.test_obj = FakeRbacTest()
if self._do_reset_mocks:
self.admin_roles_client.reset_mock()
self.test_obj.os_primary.reset_mock()
+ self.test_obj.os_admin.reset_mock()
self.mock_time.reset_mock()
def set_roles(self, roles, roles_on_project=None):
diff --git a/patrole_tempest_plugin/tests/unit/test_policy_authority.py b/patrole_tempest_plugin/tests/unit/test_policy_authority.py
index cdc9e15..fc7cafb 100644
--- a/patrole_tempest_plugin/tests/unit/test_policy_authority.py
+++ b/patrole_tempest_plugin/tests/unit/test_policy_authority.py
@@ -40,11 +40,12 @@
def setUp(self):
super(PolicyAuthorityTest, self).setUp()
- self.patchobject(policy_authority, 'credentials')
- m_creds = self.patchobject(policy_authority, 'clients')
- m_creds.Manager().identity_services_client.list_services.\
+
+ mock_admin = self.patchobject(policy_authority.PolicyAuthority,
+ 'os_admin')
+ mock_admin.identity_services_client.list_services.\
return_value = self.services
- m_creds.Manager().identity_services_v3_client.list_services.\
+ mock_admin.identity_services_v3_client.list_services.\
return_value = self.services
current_directory = os.path.dirname(os.path.realpath(__file__))
@@ -492,11 +493,12 @@
@mock.patch.object(policy_authority, 'policy', autospec=True)
@mock.patch.object(policy_authority.PolicyAuthority, 'get_rules',
autospec=True)
- @mock.patch.object(policy_authority, 'clients', autospec=True)
+ @mock.patch.object(policy_authority.PolicyAuthority, 'os_admin',
+ autospec=True)
@mock.patch.object(policy_authority, 'os', autospec=True)
@mock.patch.object(policy_authority, 'glob', autospec=True)
def test_discover_policy_files_with_many_invalid_one_valid(self, m_glob,
- m_os, m_creds,
+ m_os, m_admin,
*args):
service = 'test_service'
custom_policy_files = ['foo/%s', 'bar/%s', 'baz/%s']
@@ -506,7 +508,7 @@
m_os.path.isfile.side_effect = [False, False, True]
# Ensure the outer for loop runs only once in `discover_policy_files`.
- m_creds.Manager().identity_services_v3_client.\
+ m_admin.identity_services_v3_client.\
list_services.return_value = {
'services': [{'name': service}]}
@@ -545,11 +547,11 @@
def _test_validate_service(self, v2_services, v3_services,
expected_failure=False, expected_services=None):
- with mock.patch.object(
- policy_authority, 'clients', autospec=True) as m_creds:
- m_creds.Manager().identity_services_client.list_services.\
+ with mock.patch.object(policy_authority.PolicyAuthority, 'os_admin',
+ autospec=True) as m_admin:
+ m_admin.identity_services_client.list_services.\
return_value = v2_services
- m_creds.Manager().identity_services_v3_client.list_services.\
+ m_admin.identity_services_v3_client.list_services.\
return_value = v3_services
test_tenant_id = mock.sentinel.tenant_id