Refactoring of 'DataGenerator' classes for identity V2 and V3

Variables self.test_user, self.test_tenant, self.test_project,
self.test_role and self.test_email were removed because all these
values can be taken from the corresponding resources.

Change-Id: I67d437c5244c4648002fbc6c843b59ae54e18bca
diff --git a/tempest/api/identity/admin/v2/test_roles.py b/tempest/api/identity/admin/v2/test_roles.py
index 3f3d16e..5847129 100644
--- a/tempest/api/identity/admin/v2/test_roles.py
+++ b/tempest/api/identity/admin/v2/test_roles.py
@@ -33,9 +33,9 @@
     def _get_role_params(self):
         self.data.setup_test_user()
         self.data.setup_test_role()
-        user = self.get_user_by_name(self.data.test_user)
-        tenant = self.get_tenant_by_name(self.data.test_tenant)
-        role = self.get_role_by_name(self.data.test_role)
+        user = self.get_user_by_name(self.data.user['name'])
+        tenant = self.get_tenant_by_name(self.data.tenant['name'])
+        role = self.get_role_by_name(self.data.role['name'])
         return (user, tenant, role)
 
     def assert_role_in_role_list(self, role, roles):
diff --git a/tempest/api/identity/admin/v2/test_roles_negative.py b/tempest/api/identity/admin/v2/test_roles_negative.py
index c9af7c6..23a1958 100644
--- a/tempest/api/identity/admin/v2/test_roles_negative.py
+++ b/tempest/api/identity/admin/v2/test_roles_negative.py
@@ -27,9 +27,9 @@
     def _get_role_params(self):
         self.data.setup_test_user()
         self.data.setup_test_role()
-        user = self.get_user_by_name(self.data.test_user)
-        tenant = self.get_tenant_by_name(self.data.test_tenant)
-        role = self.get_role_by_name(self.data.test_role)
+        user = self.get_user_by_name(self.data.user['name'])
+        tenant = self.get_tenant_by_name(self.data.tenant['name'])
+        role = self.get_role_by_name(self.data.role['name'])
         return (user, tenant, role)
 
     @test.attr(type=['negative'])
diff --git a/tempest/api/identity/admin/v2/test_users.py b/tempest/api/identity/admin/v2/test_users.py
index 4497575..60c4e97 100644
--- a/tempest/api/identity/admin/v2/test_users.py
+++ b/tempest/api/identity/admin/v2/test_users.py
@@ -95,27 +95,29 @@
         # Valid user's token is authenticated
         self.data.setup_test_user()
         # Get a token
-        self.token_client.auth(self.data.test_user, self.data.test_password,
-                               self.data.test_tenant)
+        self.token_client.auth(self.data.user['name'],
+                               self.data.user_password,
+                               self.data.tenant['name'])
         # Re-auth
-        self.token_client.auth(self.data.test_user,
-                               self.data.test_password,
-                               self.data.test_tenant)
+        self.token_client.auth(self.data.user['name'],
+                               self.data.user_password,
+                               self.data.tenant['name'])
 
     @test.idempotent_id('5d1fa498-4c2d-4732-a8fe-2b054598cfdd')
     def test_authentication_request_without_token(self):
         # Request for token authentication with a valid token in header
         self.data.setup_test_user()
-        self.token_client.auth(self.data.test_user, self.data.test_password,
-                               self.data.test_tenant)
+        self.token_client.auth(self.data.user['name'],
+                               self.data.user_password,
+                               self.data.tenant['name'])
         # Get the token of the current client
         token = self.client.auth_provider.get_token()
         # Delete the token from database
         self.client.delete_token(token)
         # Re-auth
-        self.token_client.auth(self.data.test_user,
-                               self.data.test_password,
-                               self.data.test_tenant)
+        self.token_client.auth(self.data.user['name'],
+                               self.data.user_password,
+                               self.data.tenant['name'])
         self.client.auth_provider.clear_auth()
 
     @test.idempotent_id('a149c02e-e5e0-4b89-809e-7e8faf33ccda')
@@ -124,8 +126,8 @@
         self.data.setup_test_user()
         users = self.users_client.list_users()['users']
         self.assertThat([u['name'] for u in users],
-                        matchers.Contains(self.data.test_user),
-                        "Could not find %s" % self.data.test_user)
+                        matchers.Contains(self.data.user['name']),
+                        "Could not find %s" % self.data.user['name'])
 
     @test.idempotent_id('6e317209-383a-4bed-9f10-075b7c82c79a')
     def test_list_users_for_tenant(self):
@@ -164,9 +166,9 @@
         # Return list of users on tenant when roles are assigned to users
         self.data.setup_test_user()
         self.data.setup_test_role()
-        user = self.get_user_by_name(self.data.test_user)
-        tenant = self.get_tenant_by_name(self.data.test_tenant)
-        role = self.get_role_by_name(self.data.test_role)
+        user = self.get_user_by_name(self.data.user['name'])
+        tenant = self.get_tenant_by_name(self.data.tenant['name'])
+        role = self.get_role_by_name(self.data.role['name'])
         # Assigning roles to two users
         user_ids = list()
         fetched_user_ids = list()
@@ -208,6 +210,6 @@
 
         # Validate the updated password
         # Get a token
-        body = self.token_client.auth(self.data.test_user, new_pass,
-                                      self.data.test_tenant)
+        body = self.token_client.auth(self.data.user['name'], new_pass,
+                                      self.data.tenant['name'])
         self.assertTrue('id' in body['token'])
diff --git a/tempest/api/identity/admin/v2/test_users_negative.py b/tempest/api/identity/admin/v2/test_users_negative.py
index c5248fd..0a5d0c9 100644
--- a/tempest/api/identity/admin/v2/test_users_negative.py
+++ b/tempest/api/identity/admin/v2/test_users_negative.py
@@ -66,8 +66,8 @@
         # Duplicate user should not be created
         self.data.setup_test_user()
         self.assertRaises(lib_exc.Conflict, self.users_client.create_user,
-                          self.data.test_user, self.data.test_password,
-                          self.data.tenant['id'], self.data.test_email)
+                          self.data.user['name'], self.data.user_password,
+                          self.data.tenant['id'], self.data.user['email'])
 
     @test.attr(type=['negative'])
     @test.idempotent_id('0132cc22-7c4f-42e1-9e50-ac6aad31d59a')
@@ -173,22 +173,22 @@
     def test_authentication_for_disabled_user(self):
         # Disabled user's token should not get authenticated
         self.data.setup_test_user()
-        self.disable_user(self.data.test_user)
+        self.disable_user(self.data.user['name'])
         self.assertRaises(lib_exc.Unauthorized, self.token_client.auth,
-                          self.data.test_user,
-                          self.data.test_password,
-                          self.data.test_tenant)
+                          self.data.user['name'],
+                          self.data.user_password,
+                          self.data.tenant['name'])
 
     @test.attr(type=['negative'])
     @test.idempotent_id('440a7a8d-9328-4b7b-83e0-d717010495e4')
     def test_authentication_when_tenant_is_disabled(self):
         # User's token for a disabled tenant should not be authenticated
         self.data.setup_test_user()
-        self.disable_tenant(self.data.test_tenant)
+        self.disable_tenant(self.data.tenant['name'])
         self.assertRaises(lib_exc.Unauthorized, self.token_client.auth,
-                          self.data.test_user,
-                          self.data.test_password,
-                          self.data.test_tenant)
+                          self.data.user['name'],
+                          self.data.user_password,
+                          self.data.tenant['name'])
 
     @test.attr(type=['negative'])
     @test.idempotent_id('921f1ad6-7907-40b8-853f-637e7ee52178')
@@ -196,8 +196,8 @@
         # User's token for an invalid tenant should not be authenticated
         self.data.setup_test_user()
         self.assertRaises(lib_exc.Unauthorized, self.token_client.auth,
-                          self.data.test_user,
-                          self.data.test_password,
+                          self.data.user['name'],
+                          self.data.user_password,
                           'junktenant1234')
 
     @test.attr(type=['negative'])
@@ -206,8 +206,8 @@
         # Non-existent user's token should not get authenticated
         self.data.setup_test_user()
         self.assertRaises(lib_exc.Unauthorized, self.token_client.auth,
-                          'junkuser123', self.data.test_password,
-                          self.data.test_tenant)
+                          'junkuser123', self.data.user_password,
+                          self.data.tenant['name'])
 
     @test.attr(type=['negative'])
     @test.idempotent_id('d5308b33-3574-43c3-8d87-1c090c5e1eca')
@@ -215,8 +215,8 @@
         # User's token with invalid password should not be authenticated
         self.data.setup_test_user()
         self.assertRaises(lib_exc.Unauthorized, self.token_client.auth,
-                          self.data.test_user, 'junkpass1234',
-                          self.data.test_tenant)
+                          self.data.user['name'], 'junkpass1234',
+                          self.data.tenant['name'])
 
     @test.attr(type=['negative'])
     @test.idempotent_id('284192ce-fb7c-4909-a63b-9a502e0ddd11')
diff --git a/tempest/api/identity/admin/v3/test_users_negative.py b/tempest/api/identity/admin/v3/test_users_negative.py
index b2fb6e0..39c89a5 100644
--- a/tempest/api/identity/admin/v3/test_users_negative.py
+++ b/tempest/api/identity/admin/v3/test_users_negative.py
@@ -39,8 +39,8 @@
     def test_authentication_for_disabled_user(self):
         # Attempt to authenticate for disabled user should fail
         self.data.setup_test_user()
-        self.disable_user(self.data.test_user)
+        self.disable_user(self.data.user['name'])
         self.assertRaises(lib_exc.Unauthorized, self.token.auth,
-                          username=self.data.test_user,
-                          password=self.data.test_password,
+                          username=self.data.user['name'],
+                          password=self.data.user_password,
                           user_domain_id='default')
diff --git a/tempest/api/identity/base.py b/tempest/api/identity/base.py
index 7d1f593..91d620c 100644
--- a/tempest/api/identity/base.py
+++ b/tempest/api/identity/base.py
@@ -205,13 +205,7 @@
         self.users_client = users_client or client
         self.roles_client = roles_client or client
 
-        self.test_user = ''
-        self.test_password = ''
-        self.test_tenant = ''
-        self.test_project = ''
-        self.test_role = ''
-        self.test_email = ''
-
+        self.user_password = None
         self.user = None
         self.tenant = None
         self.project = None
@@ -225,18 +219,17 @@
         self.domains = []
 
     def _create_test_user(self, **kwargs):
-        self.test_user = data_utils.rand_name('test_user')
-        self.test_password = data_utils.rand_password()
-        self.test_email = self.test_user + '@testmail.tm'
+        username = data_utils.rand_name('test_user')
+        self.user_password = data_utils.rand_password()
         self.user = self.users_client.create_user(
-            self.test_user, password=self.test_password,
-            email=self.test_email, **kwargs)['user']
+            username, password=self.user_password,
+            email=username + '@testmail.tm', **kwargs)['user']
         self.users.append(self.user)
 
     def setup_test_role(self):
         """Set up a test role."""
-        self.test_role = data_utils.rand_name('role')
-        self.role = self.roles_client.create_role(name=self.test_role)['role']
+        self.role = self.roles_client.create_role(
+            name=data_utils.rand_name('test_role'))['role']
         self.roles.append(self.role)
 
     @staticmethod
@@ -272,9 +265,8 @@
 
     def setup_test_tenant(self):
         """Set up a test tenant."""
-        self.test_tenant = data_utils.rand_name('test_tenant')
         self.tenant = self.projects_client.create_tenant(
-            name=self.test_tenant,
+            name=data_utils.rand_name('test_tenant'),
             description=data_utils.rand_name('desc'))['tenant']
         self.tenants.append(self.tenant)
 
@@ -288,9 +280,8 @@
 
     def setup_test_project(self):
         """Set up a test project."""
-        self.test_project = data_utils.rand_name('test_project')
         self.project = self.projects_client.create_project(
-            name=self.test_project,
+            name=data_utils.rand_name('test_project'),
             description=data_utils.rand_name('desc'))['project']
         self.projects.append(self.project)