Merge "Fix incorrect warning with --password-prompt option"

This commit is contained in:
Zuul
2025-05-19 12:48:49 +00:00
committed by Gerrit Code Review
2 changed files with 48 additions and 1 deletions

View File

@@ -289,7 +289,7 @@ class CreateUser(command.ShowOne):
elif parsed_args.password_prompt:
password = utils.get_password(self.app.stdin)
if not parsed_args.password:
if not password:
LOG.warning(
_(
"No password was supplied, authentication will fail "

View File

@@ -163,6 +163,53 @@ class TestUserCreate(identity_fakes.TestIdentityv3):
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, data)
def test_user_create_password_prompt_no_warning(self):
arglist = [
'--password-prompt',
self.user.name,
]
verifylist = [
('password', None),
('password_prompt', True),
('enable', False),
('disable', False),
('name', self.user.name),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
import logging
# Mock the password prompt
mocker = mock.Mock()
mocker.return_value = 'abc123'
# Use assertLogs to verify no warnings are logged
logger = 'openstackclient.identity.v3.user'
with mock.patch("osc_lib.utils.get_password", mocker):
with self.assertLogs(logger, level='WARNING') as log_ctx:
logging.getLogger(logger).warning(
"Dummy warning for test setup"
)
columns, data = self.cmd.take_action(parsed_args)
self.assertEqual(1, len(log_ctx.records))
self.assertIn(
"Dummy warning for test setup", log_ctx.output[0]
)
self.assertNotIn(
"No password was supplied", ''.join(log_ctx.output)
)
# Set expected values
kwargs = {
'name': self.user.name,
'is_enabled': True,
'password': 'abc123',
}
self.identity_sdk_client.create_user.assert_called_with(**kwargs)
self.assertEqual(self.columns, columns)
self.assertEqual(self.datalist, data)
def test_user_create_email(self):
arglist = [
'--email',