diff --git a/keystoneclient/shell.py b/keystoneclient/shell.py index e688bcb8..b1e4b2fd 100644 --- a/keystoneclient/shell.py +++ b/keystoneclient/shell.py @@ -80,7 +80,7 @@ class OpenStackIdentityShell(object): default=env('OS_TENANT_ID'), help='Defaults to env[OS_TENANT_ID].') - parser.add_argument('--auth-url', + parser.add_argument('--auth_url', default=env('OS_AUTH_URL'), help='Defaults to env[OS_AUTH_URL].') diff --git a/keystoneclient/v2_0/shell.py b/keystoneclient/v2_0/shell.py index a71b045f..80e89adb 100755 --- a/keystoneclient/v2_0/shell.py +++ b/keystoneclient/v2_0/shell.py @@ -35,13 +35,13 @@ def do_user_list(kc, args): help='Desired password.') @utils.arg('--email', metavar='', nargs='?', help='Desired email address. (unique)') -@utils.arg('--default-tenant', metavar='', nargs='?', +@utils.arg('--tenant_id', metavar='', nargs='?', help='User will join the default tenant as a Member.') @utils.arg('--enabled', metavar='', nargs='?', default=True, help='Enable user immediately (Optional, default True)') def do_user_create(kc, args): user = kc.users.create(args.name, args.passwd, args.email, - tenant_id=args.default_tenant, enabled=args.enabled) + tenant_id=args.tenant_id, enabled=args.enabled) utils.print_dict(user._info) diff --git a/tests/test_shell.py b/tests/test_shell.py index 0b46d68d..ada719e1 100644 --- a/tests/test_shell.py +++ b/tests/test_shell.py @@ -58,7 +58,7 @@ class ShellTest(utils.TestCase): b.tenant_name, b.username, b.version) == \ (DEFAULT_AUTH_URL, DEFAULT_PASSWORD, DEFAULT_TENANT_ID, DEFAULT_TENANT_NAME, DEFAULT_USERNAME, '') - shell('--auth-url http://0.0.0.0:5000/ --password xyzpdq ' + shell('--auth_url http://0.0.0.0:5000/ --password xyzpdq ' '--tenant_id 1234 --tenant_name fred --username barney ' '--version 2.0 user-list') assert do_tenant_mock.called @@ -68,6 +68,41 @@ class ShellTest(utils.TestCase): ('http://0.0.0.0:5000/', 'xyzpdq', '1234', 'fred', 'barney', '2.0') + def test_shell_user_create_args(self): + """Test user-create args""" + do_uc_mock = mock.MagicMock() + # grab the decorators for do_user_create + uc_func = getattr(shell_v2_0, 'do_user_create') + do_uc_mock.arguments = getattr(uc_func, 'arguments', []) + with mock.patch('keystoneclient.v2_0.shell.do_user_create', + do_uc_mock): + + # Test case with one --tenant_id args present: ec2 creds + shell('user-create --name=FOO ' + '--pass=secrete --tenant_id=barrr --enabled=true') + assert do_uc_mock.called + ((a, b), c) = do_uc_mock.call_args + # restore os_tenant_id when review 4295 is merged + assert (b.auth_url, b.password, # b.os_tenant_id, + b.tenant_name, b.username, b.version) == \ + (DEFAULT_AUTH_URL, DEFAULT_PASSWORD, # DEFAULT_TENANT_ID, + DEFAULT_TENANT_NAME, DEFAULT_USERNAME, '') + assert (b.tenant_id, b.name, b.passwd, b.enabled) == \ + ('barrr', 'FOO', 'secrete', 'true') + + # Test case with two --tenant_id args present + shell('--tenant_id=os-tenant user-create --name=FOO ' + '--pass=secrete --tenant_id=barrr --enabled=true') + assert do_uc_mock.called + ((a, b), c) = do_uc_mock.call_args + # restore os_tenant_id when review 4295 is merged + assert (b.auth_url, b.password, # b.os_tenant_id, + b.tenant_name, b.username, b.version) == \ + (DEFAULT_AUTH_URL, DEFAULT_PASSWORD, # 'os-tenant', + DEFAULT_TENANT_NAME, DEFAULT_USERNAME, '') + assert (b.tenant_id, b.name, b.passwd, b.enabled) == \ + ('barrr', 'FOO', 'secrete', 'true') + def test_do_tenant_create(self): do_tenant_mock = mock.MagicMock() with mock.patch('keystoneclient.v2_0.shell.do_tenant_create',