def test_deletion_is_allowed_when_repository_is_empty(self):
     self.login(self.administrator)
     self.assertFalse(
         self.empty_repofolder.objectIds(),
         'Precondition: Assumed repofolder to have no children.')
     self.assertTrue(
         RepositoryDeleter(self.empty_repofolder).is_deletion_allowed())
    def test_repository_deletion(self):
        self.login(self.administrator)
        parent = aq_parent(aq_inner(self.empty_repofolder))
        repo_id = self.empty_repofolder.getId()

        self.assertIn(repo_id, parent.objectIds())
        RepositoryDeleter(self.empty_repofolder).delete()
        self.assertNotIn(repo_id, parent.objectIds())
    def test_deletion_is_allowed_when_root_is_empty(self):
        self.login(self.administrator)
        empty_root = create(
            Builder('repository_root').with_tree_portlet().having(
                title_de=u'empty', title_fr=u'empty'))

        self.assertFalse(
            empty_root.objectIds(),
            'Precondition: Assumed reporoot to have no children.')
        self.assertTrue(RepositoryDeleter(empty_root).is_deletion_allowed())
Example #4
0
    def __call__(self):
        self.parent = aq_parent(aq_inner(self.context))

        deleter = RepositoryDeleter(self.context)

        if not deleter.is_deletion_allowed():
            raise Unauthorized

        if self.request.get("form.buttons.cancel"):
            return self.redirect_back()

        elif self.request.get("form.buttons.delete"):
            # Made form CSRF save
            if not self.request.method.lower() == "post":
                raise Unauthorized

            deleter.delete()

            msg = _(u"label_successfully_deleted", default=u"The repository have been successfully deleted.")
            IStatusMessage(self.request).addStatusMessage(msg, type="info")
            return self.redirect_to_parent()

        return super(RepositoryDeletionView, self).__call__()
Example #5
0
    def __call__(self):
        self.parent = aq_parent(aq_inner(self.context))

        deleter = RepositoryDeleter(self.context)

        if not deleter.is_deletion_allowed():
            raise Unauthorized

        if self.request.get('form.buttons.cancel'):
            return self.redirect_back()

        elif self.request.get('form.buttons.delete'):
            # Made form CSRF save
            if not self.request.method.lower() == 'post':
                raise Unauthorized

            deleter.delete()

            msg = _(u'label_successfully_deleted',
                    default=u'The repository have been successfully deleted.')
            IStatusMessage(self.request).addStatusMessage(msg, type='info')
            return self.redirect_to_parent()

        return super(RepositoryDeletionView, self).__call__()
Example #6
0
    def __call__(self):
        if IRepositoryFolderSchema.providedBy(self.context):
            deleter = RepositoryDeleter(self.context)
            return deleter.is_deletion_allowed()

        return False
Example #7
0
    def test_repository_deletion_raises_unauthorized_when_preconditions_not_satisfied(self):
        create(Builder('dossier').within(self.repository))
        deleter = RepositoryDeleter(self.repository)

        with self.assertRaises(Unauthorized):
            deleter.delete()
Example #8
0
    def test_repository_deletion(self):
        deleter = RepositoryDeleter(self.repository)
        deleter.delete()

        self.assertEquals([], self.repository_root.listFolderContents())
Example #9
0
    def test_deletion_is_allowed_when_repository_is_empty(self):
        deleter = RepositoryDeleter(self.repository)

        self.assertTrue(deleter.is_deletion_allowed())
Example #10
0
    def test_deletion_is_not_allowed_when_repository_is_not_empty(self):
        create(Builder('dossier').within(self.repository))
        deleter = RepositoryDeleter(self.repository)

        self.assertFalse(deleter.is_deletion_allowed())
Example #11
0
    def render(self):
        if IRepositoryFolderSchema.providedBy(self.context):
            deleter = RepositoryDeleter(self.context)
            return deleter.is_deletion_allowed()

        return False