summaryrefslogtreecommitdiff
path: root/openstackclient/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-06-25 21:51:04 +0000
committerGerrit Code Review <review@openstack.org>2015-06-25 21:51:04 +0000
commitec31a2a12efe54b9b1149e198560a0164f070485 (patch)
tree270d1f144fd15a25eb2f9fe38fdd9776133eb966 /openstackclient/tests
parent2cc679ed9f855c8dcb40ef2eeaf5f81e447772f6 (diff)
parent4fab60634983f9327295cc68edf89824557728f9 (diff)
downloadpython-openstackclient-ec31a2a12efe54b9b1149e198560a0164f070485.tar.gz
Merge "Enables retrieval of project's parents and subtree"
Diffstat (limited to 'openstackclient/tests')
-rw-r--r--openstackclient/tests/identity/v3/fakes.py19
-rw-r--r--openstackclient/tests/identity/v3/test_project.py150
2 files changed, 169 insertions, 0 deletions
diff --git a/openstackclient/tests/identity/v3/fakes.py b/openstackclient/tests/identity/v3/fakes.py
index dfbcf44f..ae7a684c 100644
--- a/openstackclient/tests/identity/v3/fakes.py
+++ b/openstackclient/tests/identity/v3/fakes.py
@@ -145,6 +145,25 @@ PROJECT_WITH_PARENT = {
'links': base_url + 'projects/' + (project_id + '-with-parent'),
}
+PROJECT_WITH_GRANDPARENT = {
+ 'id': project_id + '-with-grandparent',
+ 'name': project_name + ', granny and grandpa',
+ 'description': project_description + ' plus another eight?',
+ 'enabled': True,
+ 'domain_id': domain_id,
+ 'parent_id': PROJECT_WITH_PARENT['id'],
+ 'links': base_url + 'projects/' + (project_id + '-with-grandparent'),
+}
+
+parents = [{'project': PROJECT}]
+grandparents = [{'project': PROJECT}, {'project': PROJECT_WITH_PARENT}]
+ids_for_parents = [PROJECT['id']]
+ids_for_parents_and_grandparents = [PROJECT['id'], PROJECT_WITH_PARENT['id']]
+
+children = [{'project': PROJECT_WITH_GRANDPARENT}]
+ids_for_children = [PROJECT_WITH_GRANDPARENT['id']]
+
+
role_id = 'r1'
role_name = 'roller'
diff --git a/openstackclient/tests/identity/v3/test_project.py b/openstackclient/tests/identity/v3/test_project.py
index ebf612cc..946bbdcd 100644
--- a/openstackclient/tests/identity/v3/test_project.py
+++ b/openstackclient/tests/identity/v3/test_project.py
@@ -783,6 +783,8 @@ class TestProjectShow(TestProject):
columns, data = self.cmd.take_action(parsed_args)
self.projects_mock.get.assert_called_with(
identity_fakes.project_id,
+ parents_as_list=False,
+ subtree_as_list=False,
)
collist = ('description', 'domain_id', 'enabled', 'id', 'name')
@@ -795,3 +797,151 @@ class TestProjectShow(TestProject):
identity_fakes.project_name,
)
self.assertEqual(datalist, data)
+
+ def test_project_show_parents(self):
+ project = copy.deepcopy(identity_fakes.PROJECT_WITH_GRANDPARENT)
+ project['parents'] = identity_fakes.grandparents
+ self.projects_mock.get.return_value = fakes.FakeResource(
+ None,
+ project,
+ loaded=True,
+ )
+
+ arglist = [
+ identity_fakes.PROJECT_WITH_GRANDPARENT['id'],
+ '--parents',
+ ]
+ verifylist = [
+ ('project', identity_fakes.PROJECT_WITH_GRANDPARENT['id']),
+ ('parents', True),
+ ('children', False),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ self.projects_mock.get.assert_called_with(
+ identity_fakes.PROJECT_WITH_GRANDPARENT['id'],
+ parents_as_list=True,
+ subtree_as_list=False,
+ )
+
+ collist = (
+ 'description',
+ 'domain_id',
+ 'enabled',
+ 'id',
+ 'name',
+ 'parent_id',
+ 'parents',
+ )
+ self.assertEqual(columns, collist)
+ datalist = (
+ identity_fakes.PROJECT_WITH_GRANDPARENT['description'],
+ identity_fakes.PROJECT_WITH_GRANDPARENT['domain_id'],
+ identity_fakes.PROJECT_WITH_GRANDPARENT['enabled'],
+ identity_fakes.PROJECT_WITH_GRANDPARENT['id'],
+ identity_fakes.PROJECT_WITH_GRANDPARENT['name'],
+ identity_fakes.PROJECT_WITH_GRANDPARENT['parent_id'],
+ identity_fakes.ids_for_parents_and_grandparents,
+ )
+ self.assertEqual(data, datalist)
+
+ def test_project_show_subtree(self):
+ project = copy.deepcopy(identity_fakes.PROJECT_WITH_PARENT)
+ project['subtree'] = identity_fakes.children
+ self.projects_mock.get.return_value = fakes.FakeResource(
+ None,
+ project,
+ loaded=True,
+ )
+
+ arglist = [
+ identity_fakes.PROJECT_WITH_PARENT['id'],
+ '--children',
+ ]
+ verifylist = [
+ ('project', identity_fakes.PROJECT_WITH_PARENT['id']),
+ ('parents', False),
+ ('children', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ self.projects_mock.get.assert_called_with(
+ identity_fakes.PROJECT_WITH_PARENT['id'],
+ parents_as_list=False,
+ subtree_as_list=True,
+ )
+
+ collist = (
+ 'description',
+ 'domain_id',
+ 'enabled',
+ 'id',
+ 'name',
+ 'parent_id',
+ 'subtree',
+ )
+ self.assertEqual(columns, collist)
+ datalist = (
+ identity_fakes.PROJECT_WITH_PARENT['description'],
+ identity_fakes.PROJECT_WITH_PARENT['domain_id'],
+ identity_fakes.PROJECT_WITH_PARENT['enabled'],
+ identity_fakes.PROJECT_WITH_PARENT['id'],
+ identity_fakes.PROJECT_WITH_PARENT['name'],
+ identity_fakes.PROJECT_WITH_PARENT['parent_id'],
+ identity_fakes.ids_for_children,
+ )
+ self.assertEqual(data, datalist)
+
+ def test_project_show_parents_and_children(self):
+ project = copy.deepcopy(identity_fakes.PROJECT_WITH_PARENT)
+ project['subtree'] = identity_fakes.children
+ project['parents'] = identity_fakes.parents
+ self.projects_mock.get.return_value = fakes.FakeResource(
+ None,
+ project,
+ loaded=True,
+ )
+
+ arglist = [
+ identity_fakes.PROJECT_WITH_PARENT['id'],
+ '--parents',
+ '--children',
+ ]
+ verifylist = [
+ ('project', identity_fakes.PROJECT_WITH_PARENT['id']),
+ ('parents', True),
+ ('children', True),
+ ]
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = self.cmd.take_action(parsed_args)
+ self.projects_mock.get.assert_called_with(
+ identity_fakes.PROJECT_WITH_PARENT['id'],
+ parents_as_list=True,
+ subtree_as_list=True,
+ )
+
+ collist = (
+ 'description',
+ 'domain_id',
+ 'enabled',
+ 'id',
+ 'name',
+ 'parent_id',
+ 'parents',
+ 'subtree',
+ )
+ self.assertEqual(columns, collist)
+ datalist = (
+ identity_fakes.PROJECT_WITH_PARENT['description'],
+ identity_fakes.PROJECT_WITH_PARENT['domain_id'],
+ identity_fakes.PROJECT_WITH_PARENT['enabled'],
+ identity_fakes.PROJECT_WITH_PARENT['id'],
+ identity_fakes.PROJECT_WITH_PARENT['name'],
+ identity_fakes.PROJECT_WITH_PARENT['parent_id'],
+ identity_fakes.ids_for_parents,
+ identity_fakes.ids_for_children,
+ )
+ self.assertEqual(data, datalist)