예제 #1
0
    def test(self):
        admin = UserFactory.create()
        project = ProjectFactory(add_admins=[admin])
        contribution = ObservationFactory.create(**{
            'project': project
        })
        comment = CommentFactory.create()

        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/contributions/%s/comments/' %
            (project.id, contribution.id),
            {
                'text': 'Response to a comment',
                'respondsto': comment.id
            }
        )
        force_authenticate(request, user=admin)
        view = CommentsAPIView.as_view()
        response = view(
            request,
            project_id=project.id,
            contribution_id=contribution.id
        ).render()

        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
        self.assertEqual(
            json.loads(response.content).get('error'),
            'The comment you try to respond to is not a comment to the '
            'contribution.'
        )
예제 #2
0
 def get_response(self, user):
     factory = APIRequestFactory()
     request = factory.get('/api/projects/%s/contributions/%s/comments/' %
                           (self.project.id, self.contribution.id))
     force_authenticate(request, user=user)
     view = CommentsAPIView.as_view()
     return view(request,
                 project_id=self.project.id,
                 contribution_id=self.contribution.id).render()
예제 #3
0
 def get_response(self, user):
     factory = APIRequestFactory()
     request = factory.post(
         "/api/projects/%s/contributions/%s/comments/" % (self.project.id, self.contribution.id),
         {"text": "A comment to the contribution."},
     )
     force_authenticate(request, user=user)
     view = CommentsAPIView.as_view()
     return view(request, project_id=self.project.id, contribution_id=self.contribution.id).render()
예제 #4
0
    def get_response(self, user):
        if user.is_anonymous and not User.objects.filter(display_name="AnonymousUser").exists():
            UserFactory.create(display_name="AnonymousUser")

        factory = APIRequestFactory()
        request = factory.post(
            "/api/projects/%s/maps/all-contributions/%s/comments/" % (self.project.id, self.contribution.id),
            {"text": "A comment to the contribution."},
        )
        force_authenticate(request, user=user)
        view = CommentsAPIView.as_view()
        return view(request, project_id=self.project.id, contribution_id=self.contribution.id).render()
예제 #5
0
    def test_add_closed_review_comment_to_contribution_with_contributor(self):
        factory = APIRequestFactory()
        request = factory.post(
            "/api/projects/%s/contributions/%s/comments/" % (self.project.id, self.contribution.id),
            {"text": "A review comment to the contribution.", "review_status": "resolved"},
        )
        force_authenticate(request, user=self.contributor)
        view = CommentsAPIView.as_view()
        response = view(request, project_id=self.project.id, contribution_id=self.contribution.id).render()

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(Observation.objects.get(pk=self.contribution.id).status, "active")
예제 #6
0
 def get_response(self, user):
     factory = APIRequestFactory()
     request = factory.get(
         '/api/projects/%s/contributions/%s/comments/' %
         (self.project.id, self.contribution.id)
     )
     force_authenticate(request, user=user)
     view = CommentsAPIView.as_view()
     return view(
         request,
         project_id=self.project.id,
         contribution_id=self.contribution.id
     ).render()
예제 #7
0
    def test(self):
        admin = UserFactory.create()
        project = ProjectFactory(add_admins=[admin])
        contribution = ObservationFactory.create()

        factory = APIRequestFactory()
        request = factory.post(
            "/api/projects/%s/contributions/%s/comments/" % (project.id, contribution.id),
            {"text": "A comment to the contribution."},
        )
        force_authenticate(request, user=admin)
        view = CommentsAPIView.as_view()
        response = view(request, project_id=project.id, contribution_id=contribution.id).render()
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
예제 #8
0
    def get_response(self, user):
        if user.is_anonymous and not User.objects.filter(
                display_name='AnonymousUser').exists():
            UserFactory.create(display_name='AnonymousUser')

        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/maps/all-contributions/%s/comments/' %
            (self.project.id, self.contribution.id),
            {'text': 'A comment to the contribution.'})
        force_authenticate(request, user=user)
        view = CommentsAPIView.as_view()
        return view(request,
                    project_id=self.project.id,
                    contribution_id=self.contribution.id).render()
예제 #9
0
    def test(self):
        admin = UserFactory.create()
        project = ProjectFactory(add_admins=[admin])
        contribution = ObservationFactory.create()

        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/contributions/%s/comments/' %
            (project.id, contribution.id),
            {'text': 'A comment to the contribution.'})
        force_authenticate(request, user=admin)
        view = CommentsAPIView.as_view()
        response = view(request,
                        project_id=project.id,
                        contribution_id=contribution.id).render()
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
예제 #10
0
    def test_add_closed_review_comment_to_contribution_with_contributor(self):
        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/contributions/%s/comments/' %
            (self.project.id, self.contribution.id), {
                'text': 'A review comment to the contribution.',
                'review_status': 'resolved'
            })
        force_authenticate(request, user=self.contributor)
        view = CommentsAPIView.as_view()
        response = view(request,
                        project_id=self.project.id,
                        contribution_id=self.contribution.id).render()

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(
            Observation.objects.get(pk=self.contribution.id).status, 'active')
예제 #11
0
    def test(self):
        admin = UserFactory.create()
        project = ProjectFactory(add_admins=[admin])
        contribution = ObservationFactory.create(**{"project": project})
        comment = CommentFactory.create(**{"commentto": contribution})

        factory = APIRequestFactory()
        request = factory.post(
            "/api/projects/%s/contributions/%s/comments/" % (project.id, contribution.id),
            {"text": "Response to a comment", "respondsto": comment.id},
        )
        force_authenticate(request, user=admin)
        view = CommentsAPIView.as_view()
        response = view(request, project_id=project.id, contribution_id=contribution.id).render()

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(json.loads(response.content).get("respondsto"), comment.id)
예제 #12
0
    def test_add_review_comment_to_contribution_with_contributor(self):
        factory = APIRequestFactory()
        request = factory.post(
            '/api/projects/%s/contributions/%s/comments/' %
            (self.project.id, self.contribution.id),
            {
                'text': 'A review comment to the contribution.',
                'review_status': 'open'
            }
        )
        force_authenticate(request, user=self.contributor)
        view = CommentsAPIView.as_view()
        response = view(
            request,
            project_id=self.project.id,
            contribution_id=self.contribution.id
        ).render()

        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
        self.assertEqual(
            Observation.objects.get(pk=self.contribution.id).status,
            'review'
        )