Beispiel #1
0
    def test_delete_discussion(self):
        owner = self.login(AdminFactory())
        user = UserFactory()
        dataset = Dataset.objects.create(title='Test dataset', owner=owner)
        message = Message(content='bla bla', posted_by=user)
        discussion = DatasetDiscussion.objects.create(subject=dataset.id,
                                                      user=user,
                                                      title='test discussion',
                                                      discussion=[message])
        on_new_discussion.send(discussion)  # Updating metrics.
        self.assertEqual(
            DatasetDiscussion.objects(subject=dataset.id).count(), 1)

        response = self.delete(url_for('api.discussion', id=discussion.id))
        self.assertStatus(response, 204)

        dataset.reload()
        self.assertEqual(dataset.metrics['discussions'], 0)
        self.assertEqual(
            DatasetDiscussion.objects(subject=dataset.id).count(), 0)
Beispiel #2
0
 def get_context(self):
     context = super(DatasetDetailView, self).get_context()
     if not DatasetEditPermission(self.dataset).can():
         if self.dataset.private:
             abort(404)
         elif self.dataset.deleted:
             abort(410)
     context['reuses'] = Reuse.objects(datasets=self.dataset).visible()
     context['can_edit'] = DatasetEditPermission(self.dataset)
     context['can_edit_resource'] = ResourceEditPermission
     context['discussions'] = DatasetDiscussion.objects(
         subject=self.dataset)
     return context
Beispiel #3
0
    def test_delete_discussion(self):
        owner = self.login(AdminFactory())
        user = UserFactory()
        dataset = Dataset.objects.create(title='Test dataset', owner=owner)
        message = Message(content='bla bla', posted_by=user)
        discussion = DatasetDiscussion.objects.create(
            subject=dataset.id,
            user=user,
            title='test discussion',
            discussion=[message]
        )
        on_new_discussion.send(discussion)  # Updating metrics.
        self.assertEqual(DatasetDiscussion.objects(subject=dataset.id).count(),
                         1)

        response = self.delete(url_for('api.discussion', id=discussion.id))
        self.assertStatus(response, 204)

        dataset.reload()
        self.assertEqual(dataset.metrics['discussions'], 0)
        self.assertEqual(DatasetDiscussion.objects(subject=dataset.id).count(),
                         0)
Beispiel #4
0
 def get_context(self):
     context = super(DatasetDetailView, self).get_context()
     if not DatasetEditPermission(self.dataset).can():
         if self.dataset.private:
             abort(404)
         elif self.dataset.deleted:
             abort(410)
     context['reuses'] = Reuse.objects(datasets=self.dataset).visible()
     context['can_edit'] = DatasetEditPermission(self.dataset)
     context['can_edit_resource'] = ResourceEditPermission
     context['discussions'] = DatasetDiscussion.objects(
         subject=self.dataset)
     return context