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)
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
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)