def test_get_public_tree_all(self): self.assertEqual( ITreeContents(self.root).get_public_tree_all(), [(0, self.root.folder), (1, self.root.folder.folder), (0, self.root.publication)]) IPublicationWorkflow(self.root.document).publish() IPublicationWorkflow(self.root.publication.document).publish() self.assertEqual( ITreeContents(self.root).get_public_tree_all(), [(0, self.root.document), (0, self.root.folder), (1, self.root.folder.folder), (0, self.root.publication), (1, self.root.publication.document)])
def test_get_tree(self): self.assertEqual( ITreeContents(self.root).get_tree(), [(0, self.root.document), (0, self.root.folder), (1, self.root.folder.document), (1, self.root.folder.folder), (2, self.root.folder.folder.document), (0, self.root.publication)])
def _get_public_tree_helper(self, l, indent, depth, include_publications, filters): for item in self.context.get_ordered_publishables(): if not filters(item): continue l.append((indent, item)) if (IContainer.providedBy(item) and (item.is_transparent() or include_publications)): if depth == -1 or indent < depth: ITreeContents(item)._get_public_tree_helper( l, indent + 1, depth, include_publications, filters)
def _get_container_tree_helper(self, l, indent, depth): for item in self.context.get_ordered_publishables(): if not IContainer.providedBy(item): continue if item.is_transparent(): l.append((indent, item)) if depth == -1 or indent < depth: ITreeContents(item)._get_container_tree_helper( l, indent + 1, depth) else: l.append((indent, item))
def _get_tree_helper(self, l, indent, depth): for item in self.context.get_ordered_publishables(): if item.getId() == 'index': # default document should not be inserted continue if (IContainer.providedBy(item) and item.is_transparent()): l.append((indent, item)) if depth == -1 or indent < depth: ITreeContents(item)._get_tree_helper(l, indent + 1, depth) else: l.append((indent, item))
def _get_status_tree_helper(self, l, indent, depth): default = self.context.get_default() if default is not None: l.append((indent, default)) for item in self.context.get_ordered_publishables(): l.append((indent, item)) if not IContainer.providedBy(item): continue if (depth == -1 or indent < depth) and item.is_transparent(): ITreeContents(item)._get_status_tree_helper( l, indent + 1, depth)
def test_get_public_tree(self): self.assertEqual( ITreeContents(self.root).get_public_tree(), [(0, self.root.folder), (1, self.root.folder.folder), (0, self.root.publication)]) self.assertEqual( ITreeContents(self.root).get_public_tree(1), [(0, self.root.folder), (1, self.root.folder.folder), (0, self.root.publication)]) self.assertEqual( ITreeContents(self.root).get_public_tree(0), [(0, self.root.folder), (0, self.root.publication)]) IPublicationWorkflow(self.root.document).publish() IPublicationWorkflow(self.root.publication.document).publish() self.assertEqual( ITreeContents(self.root).get_public_tree(), [(0, self.root.document), (0, self.root.folder), (1, self.root.folder.folder), (0, self.root.publication)]) IAccessSecurity(self.root.folder).minimum_role = 'Manager' self.assertEqual( ITreeContents(self.root).get_public_tree(), [(0, self.root.document), (0, self.root.publication)])
def get_content_public_tree(context, depth): # This is extremely slow and performance-wise bad return ITreeContents(context).get_public_tree(depth)
def test_get_container_tree(self): self.assertEqual( ITreeContents(self.root).get_container_tree(), [(0, self.root.folder), (1, self.root.folder.folder), (0, self.root.publication)])
def test_implementation(self): root_tree = ITreeContents(self.root) self.assertTrue(verifyObject(ITreeContents, root_tree)) folder_tree = ITreeContents(self.root.folder) self.assertTrue(verifyObject(ITreeContents, folder_tree))