Add optional property user_password to user context

Add optional property user_password for specifying custom
user password, which could escape of an issue, when
password_regexp requirements defined in keystone config, but
uuid4 generated password is invalid for these requirements.

Change-Id: Ib23262e6b571754b6b59a9e2b1155e9ac51a2090
This commit is contained in:
prazumovsky 2019-05-13 16:12:01 +04:00 committed by Andrey Kurilin
parent a539f306c1
commit 738fac67a1
2 changed files with 22 additions and 1 deletions

View File

@ -63,6 +63,11 @@ class UserGenerator(context.Context):
"minimum": 1,
"description": "The number of users to create per one "
"tenant."},
"user_password": {
"type": "string",
"description": "Specify custom user password instead of "
"randomly generated in case of password "
"requirements."},
"resource_management_workers": {
"type": "integer",
"minimum": 1,
@ -196,7 +201,9 @@ class UserGenerator(context.Context):
for tenant_id in self.context["tenants"]:
for user_id in range(users_per_tenant):
username = self.generate_random_name()
password = str(uuid.uuid4())
password = (str(uuid.uuid4())
if self.config.get("user_password") is None
else self.config["user_password"])
args = (username, password, self.config["project_domain"],
self.config["user_domain"], tenant_id)
queue.append(args)

View File

@ -362,6 +362,20 @@ class UserGeneratorForNewUsersTestCase(test.ScenarioTestCase):
self.assertIn("id", user)
self.assertIn("credential", user)
@mock.patch("%s.identity" % CTX)
def test__create_users_user_password(self, mock_identity):
self.context["config"]["users"]["users_per_tenant"] = 2
self.context["config"]["users"]["user_password"] = "TrustMe"
user_generator = users.UserGenerator(self.context)
user_generator.context["tenants"] = {"t1": {"id": "t1", "name": "t1"},
"t2": {"id": "t2", "name": "t2"}}
users_ = user_generator._create_users()
self.assertEqual(4, len(users_))
for user in users_:
self.assertIn("id", user)
self.assertIn("credential", user)
self.assertEqual("TrustMe", user["credential"]["password"])
@mock.patch("%s.identity" % CTX)
def test__delete_tenants(self, mock_identity):
user_generator = users.UserGenerator(self.context)