summaryrefslogtreecommitdiff
path: root/openstackclient/tests/identity
diff options
context:
space:
mode:
authorTerry Howe <terrylhowe@gmail.com>2014-02-19 19:30:56 -0700
committerTerry Howe <terrylhowe@gmail.com>2014-02-21 14:42:22 -0700
commit033f27fe4dc4455c2f07978a273fd65faa653b67 (patch)
tree56126c4cd1a4d0aebbab6d0b7cfa6507ca3d195a /openstackclient/tests/identity
parent2f5e8232aa07a9031231ad7b4678b7c52c1effc4 (diff)
downloadpython-openstackclient-033f27fe4dc4455c2f07978a273fd65faa653b67.tar.gz
Add ability to prompt for passwords for user create and set
* Add get_password method to the utilities * Add --password-prompt option * Call the get_password method if a prompt is requested * Various tests Change-Id: I1786ad531e2a2fbcc21b8bc86aac0ccd7985995a Closes-Bug: 1100116
Diffstat (limited to 'openstackclient/tests/identity')
-rw-r--r--openstackclient/tests/identity/v2_0/test_user.py73
-rw-r--r--openstackclient/tests/identity/v3/test_user.py87
2 files changed, 160 insertions, 0 deletions
diff --git a/openstackclient/tests/identity/v2_0/test_user.py b/openstackclient/tests/identity/v2_0/test_user.py
index a18d13d8..dfb358ff 100644
--- a/openstackclient/tests/identity/v2_0/test_user.py
+++ b/openstackclient/tests/identity/v2_0/test_user.py
@@ -14,6 +14,7 @@
#
import copy
+import mock
from openstackclient.identity.v2_0 import user
from openstackclient.tests import fakes
@@ -99,6 +100,7 @@ class TestUserCreate(TestUser):
]
verifylist = [
('name', identity_fakes.user_name),
+ ('password_prompt', False),
('password', 'secret')
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -130,6 +132,47 @@ class TestUserCreate(TestUser):
)
self.assertEqual(data, datalist)
+ def test_user_create_password_prompt(self):
+ arglist = [
+ '--password-prompt',
+ identity_fakes.user_name,
+ ]
+ verifylist = [
+ ('name', identity_fakes.user_name),
+ ('password_prompt', True)
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ mocker = mock.Mock()
+ mocker.return_value = 'abc123'
+ with mock.patch("openstackclient.common.utils.get_password", mocker):
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'enabled': True,
+ 'tenant_id': None,
+ }
+ # UserManager.create(name, password, email, tenant_id=, enabled=)
+ self.users_mock.create.assert_called_with(
+ identity_fakes.user_name,
+ 'abc123',
+ None,
+ **kwargs
+ )
+
+ collist = ('email', 'enabled', 'id', 'name', 'project_id')
+ self.assertEqual(columns, collist)
+ datalist = (
+ identity_fakes.user_email,
+ True,
+ identity_fakes.user_id,
+ identity_fakes.user_name,
+ identity_fakes.project_id,
+ )
+ self.assertEqual(data, datalist)
+
def test_user_create_email(self):
arglist = [
'--email', 'barney@example.com',
@@ -498,6 +541,7 @@ class TestUserSet(TestUser):
verifylist = [
('name', None),
('password', 'secret'),
+ ('password_prompt', False),
('email', None),
('project', None),
('enable', False),
@@ -515,6 +559,35 @@ class TestUserSet(TestUser):
'secret',
)
+ def test_user_set_password_prompt(self):
+ arglist = [
+ '--password-prompt',
+ identity_fakes.user_name,
+ ]
+ verifylist = [
+ ('name', None),
+ ('password', None),
+ ('password_prompt', True),
+ ('email', None),
+ ('project', None),
+ ('enable', False),
+ ('disable', False),
+ ('user', identity_fakes.user_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ mocker = mock.Mock()
+ mocker.return_value = 'abc123'
+ with mock.patch("openstackclient.common.utils.get_password", mocker):
+ self.cmd.take_action(parsed_args)
+
+ # UserManager.update_password(user, password)
+ self.users_mock.update_password.assert_called_with(
+ identity_fakes.user_id,
+ 'abc123',
+ )
+
def test_user_set_email(self):
arglist = [
'--email', 'barney@example.com',
diff --git a/openstackclient/tests/identity/v3/test_user.py b/openstackclient/tests/identity/v3/test_user.py
index 4321b047..af7b2f70 100644
--- a/openstackclient/tests/identity/v3/test_user.py
+++ b/openstackclient/tests/identity/v3/test_user.py
@@ -14,6 +14,7 @@
#
import copy
+import mock
from openstackclient.identity.v3 import user
from openstackclient.tests import fakes
@@ -118,6 +119,7 @@ class TestUserCreate(TestUser):
]
verifylist = [
('password', 'secret'),
+ ('password_prompt', False),
('enable', False),
('disable', False),
('name', identity_fakes.user_name),
@@ -155,6 +157,54 @@ class TestUserCreate(TestUser):
)
self.assertEqual(data, datalist)
+ def test_user_create_password_prompt(self):
+ arglist = [
+ '--password-prompt',
+ identity_fakes.user_name,
+ ]
+ verifylist = [
+ ('password', None),
+ ('password_prompt', True),
+ ('enable', False),
+ ('disable', False),
+ ('name', identity_fakes.user_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ mocker = mock.Mock()
+ mocker.return_value = 'abc123'
+ with mock.patch("openstackclient.common.utils.get_password", mocker):
+ columns, data = self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'default_project': None,
+ 'description': None,
+ 'domain': None,
+ 'email': None,
+ 'enabled': True,
+ 'password': 'abc123',
+ }
+ # UserManager.create(name, domain=, project=, password=, email=,
+ # description=, enabled=, default_project=)
+ self.users_mock.create.assert_called_with(
+ identity_fakes.user_name,
+ **kwargs
+ )
+
+ collist = ('domain_id', 'email', 'enabled', 'id', 'name', 'project_id')
+ self.assertEqual(columns, collist)
+ datalist = (
+ identity_fakes.domain_id,
+ identity_fakes.user_email,
+ True,
+ identity_fakes.user_id,
+ identity_fakes.user_name,
+ identity_fakes.project_id,
+ )
+ self.assertEqual(data, datalist)
+
def test_user_create_email(self):
arglist = [
'--email', 'barney@example.com',
@@ -761,6 +811,7 @@ class TestUserSet(TestUser):
verifylist = [
('name', None),
('password', 'secret'),
+ ('password_prompt', False),
('email', None),
('domain', None),
('project', None),
@@ -785,6 +836,42 @@ class TestUserSet(TestUser):
**kwargs
)
+ def test_user_set_password_prompt(self):
+ arglist = [
+ '--password-prompt',
+ identity_fakes.user_name,
+ ]
+ verifylist = [
+ ('name', None),
+ ('password', None),
+ ('password_prompt', True),
+ ('email', None),
+ ('domain', None),
+ ('project', None),
+ ('enable', False),
+ ('disable', False),
+ ('user', identity_fakes.user_name),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ # DisplayCommandBase.take_action() returns two tuples
+ mocker = mock.Mock()
+ mocker.return_value = 'abc123'
+ with mock.patch("openstackclient.common.utils.get_password", mocker):
+ self.cmd.take_action(parsed_args)
+
+ # Set expected values
+ kwargs = {
+ 'enabled': True,
+ 'password': 'abc123',
+ }
+ # UserManager.update(user, name=, domain=, project=, password=,
+ # email=, description=, enabled=, default_project=)
+ self.users_mock.update.assert_called_with(
+ identity_fakes.user_id,
+ **kwargs
+ )
+
def test_user_set_email(self):
arglist = [
'--email', 'barney@example.com',