From a01bf55d2065ec1a98f486109cc8d315def501cd Mon Sep 17 00:00:00 2001 From: jiangpch Date: Thu, 13 Jul 2017 04:58:00 -0400 Subject: Fix 'domain' filter not work well in some commands The 'domain' filter not work well in commands 'project show', 'user show' and 'user set'. Depends-On: I490900d6249f01654d4cba43bddd3e7af7928a84 Closes-Bug: #1704097 Change-Id: Ib4f47cbaba27eb56c4a41d187fee74a995e62dc7 --- .../tests/unit/identity/v3/test_project.py | 46 ++++++++++++++++++++++ .../tests/unit/identity/v3/test_user.py | 38 +++++++++++++++++- 2 files changed, 83 insertions(+), 1 deletion(-) (limited to 'openstackclient/tests/unit') diff --git a/openstackclient/tests/unit/identity/v3/test_project.py b/openstackclient/tests/unit/identity/v3/test_project.py index 7be81153..2ce26c64 100644 --- a/openstackclient/tests/unit/identity/v3/test_project.py +++ b/openstackclient/tests/unit/identity/v3/test_project.py @@ -19,6 +19,7 @@ from mock import call from osc_lib import exceptions from osc_lib import utils +from openstackclient.identity import common from openstackclient.identity.v3 import project from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes @@ -1060,3 +1061,48 @@ class TestProjectShow(TestProject): ['children-id'], ) self.assertEqual(data, datalist) + + def test_project_show_with_domain(self): + project = identity_fakes.FakeProject.create_one_project( + {"name": self.project.name}) + + self.app.client_manager.identity.tokens.get_token_data.return_value = \ + {'token': + {'project': + {'domain': {"id": self.project.domain_id}, + 'name': self.project.name, + 'id': self.project.id + } + } + } + + identity_client = self.app.client_manager.identity + arglist = [ + "--domain", self.domain.id, + project.name, + ] + verifylist = [ + ('domain', self.domain.id), + ('project', project.name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + project_str = common._get_token_resource(identity_client, 'project', + parsed_args.project, + parsed_args.domain) + self.assertEqual(self.project.id, project_str) + + arglist = [ + "--domain", project.domain_id, + project.name, + ] + verifylist = [ + ('domain', project.domain_id), + ('project', project.name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + project_str = common._get_token_resource(identity_client, 'project', + parsed_args.project, + parsed_args.domain) + self.assertEqual(project.name, project_str) diff --git a/openstackclient/tests/unit/identity/v3/test_user.py b/openstackclient/tests/unit/identity/v3/test_user.py index 2ce66e94..96f50766 100644 --- a/openstackclient/tests/unit/identity/v3/test_user.py +++ b/openstackclient/tests/unit/identity/v3/test_user.py @@ -19,6 +19,7 @@ import mock from osc_lib import exceptions from osc_lib import utils +from openstackclient.identity import common from openstackclient.identity.v3 import user from openstackclient.tests.unit.identity.v3 import fakes as identity_fakes @@ -1091,7 +1092,7 @@ class TestUserShow(TestUser): self.app.client_manager.identity.tokens.get_token_data.return_value = \ {'token': {'user': - {'domain': {}, + {'domain': {'id': self.user.domain_id}, 'id': self.user.id, 'name': self.user.name, } @@ -1126,3 +1127,38 @@ class TestUserShow(TestUser): self.user.name, ) self.assertEqual(datalist, data) + + def test_user_show_with_domain(self): + user = identity_fakes.FakeUser.create_one_user( + {"name": self.user.name}) + identity_client = self.app.client_manager.identity + + arglist = [ + "--domain", self.user.domain_id, + user.name, + ] + verifylist = [ + ('domain', self.user.domain_id), + ('user', user.name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + user_str = common._get_token_resource(identity_client, 'user', + parsed_args.user, + parsed_args.domain) + self.assertEqual(self.user.id, user_str) + + arglist = [ + "--domain", user.domain_id, + user.name, + ] + verifylist = [ + ('domain', user.domain_id), + ('user', user.name), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + user_str = common._get_token_resource(identity_client, 'user', + parsed_args.user, + parsed_args.domain) + self.assertEqual(user.name, user_str) -- cgit v1.2.1