diff --git a/adjutant/common/tests/fake_clients.py b/adjutant/common/tests/fake_clients.py index 4436657..f3af0e6 100644 --- a/adjutant/common/tests/fake_clients.py +++ b/adjutant/common/tests/fake_clients.py @@ -357,7 +357,34 @@ class FakeManager(object): def get_project(self, project_id, subtree_as_ids=False, parents_as_ids=False): global identity_cache - return identity_cache['projects'].get(project_id, None) + project = identity_cache['projects'].get(project_id, None) + + if subtree_as_ids: + subtree_list = [] + prev_layer = [project.id, ] + current_layer = True + while current_layer: + current_layer = [s_project.id for s_project in + identity_cache['projects'].values() + if project.parent_id in prev_layer] + prev_layer = current_layer + subtree_list.append(current_layer) + + project.subtree_ids = subtree_list + + if parents_as_ids: + parent_list = [] + parent_id = project.parent_id + parent_list.append(parent_id) + while identity_cache['projects'].get(parent_id, None): + parent_id = identity_cache['projects'].get(parent_id, None) + parent_list.append(parent_id) + + project.parent_ids = parent_list + project.root = parent_id + project.depth = len(parent_list) + + return project def create_project(self, project_name, created_on, parent=None, domain='default', description=""): diff --git a/adjutant/common/user_store.py b/adjutant/common/user_store.py index d453e69..589aea8 100644 --- a/adjutant/common/user_store.py +++ b/adjutant/common/user_store.py @@ -273,6 +273,7 @@ class IdentityManager(object): # pragma: no cover value = value.values()[0] project.root = last_root project.depth = depth + project.parent_ids = subtree_ids_list(project.parents) if subtree_as_ids: project.subtree_ids = subtree_ids_list(project.subtree) return project