예제 #1
0
    def test_resolve_one_of_two_comment_with_admin(self):
        CommentFactory.create(**{
            'commentto': self.observation,
            'creator': self.creator,
            'review_status': 'open'
        })

        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'observation_id': self.observation.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.admin
        request.DATA = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.update_and_respond(request, self.comment)
        )
        self.assertEqual(
            json.loads(response.content).get('review_status'),
            'resolved'
        )
        self.assertEqual(
            Observation.objects.get(pk=self.observation.id).status,
            'review'
        )
예제 #2
0
    def test_resolve_one_of_two_comment_with_admin(self):
        CommentFactory.create(**{
            'commentto': self.contribution,
            'creator': self.creator,
            'review_status': 'open'
        })

        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'contribution_id': self.contribution.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.admin
        request.data = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.update_and_respond(request, self.contribution, self.comment)
        )
        self.assertEqual(
            json.loads(response.content).get('review_status'),
            'resolved'
        )
        self.assertEqual(
            Observation.objects.get(pk=self.contribution.id).status,
            'review'
        )
예제 #3
0
    def test_create_comment_with_admin(self):
        url = reverse(
            "api:project_comments", kwargs={"project_id": self.project.id, "contribution_id": self.contribution.id}
        )
        request = self.factory.post(url, {"text": "Comment"})
        request.user = self.admin
        request.data = {"text": "Comment"}

        view = CommentAbstractAPIView()
        response = self.render(view.create_and_respond(request, self.contribution))
        self.assertEqual(json.loads(response.content).get("text"), "Comment")
예제 #4
0
    def test_resolve_comment_with_commenter(self):
        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'contribution_id': self.contribution.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.commenter
        request.data = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        view.update_and_respond(request, self.contribution, self.comment)
예제 #5
0
    def test_resolve_comment_with_anonymous(self):
        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'contribution_id': self.contribution.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = AnonymousUser()
        request.data = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        view.update_and_respond(request, self.contribution, self.comment)
예제 #6
0
    def test_resolve_comment_with_anonymous(self):
        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'observation_id': self.observation.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = AnonymousUser()
        request.DATA = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        view.update_and_respond(request, self.comment)
예제 #7
0
    def test_resolve_comment_with_commenter(self):
        url = reverse('api:project_single_comment',
                      kwargs={
                          'project_id': self.project.id,
                          'observation_id': self.observation.id,
                          'comment_id': self.comment.id
                      })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.commenter
        request.DATA = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        view.update_and_respond(request, self.comment)
예제 #8
0
    def test_create_comment_with_admin(self):
        url = reverse('api:project_comments', kwargs={
            'project_id': self.project.id,
            'contribution_id': self.contribution.id
        })
        request = self.factory.post(url, {'text': 'Comment'})
        request.user = self.admin
        request.data = {'text': 'Comment'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.create_and_respond(request, self.contribution)
        )
        self.assertEqual(json.loads(response.content).get('text'), 'Comment')
예제 #9
0
    def test_create_comment_with_admin(self):
        url = reverse('api:project_comments', kwargs={
            'project_id': self.project.id,
            'observation_id': self.observation.id
        })
        request = self.factory.post(url, {'text': 'Comment'})
        request.user = self.admin
        request.DATA = {'text': 'Comment'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.create_and_respond(request, self.observation)
        )
        self.assertEqual(json.loads(response.content).get('text'), 'Comment')
예제 #10
0
    def test_resolve_comment_with_anonymous(self):
        url = reverse(
            "api:project_single_comment",
            kwargs={
                "project_id": self.project.id,
                "contribution_id": self.contribution.id,
                "comment_id": self.comment.id,
            },
        )
        request = self.factory.patch(url, {"text": "Updated"})
        request.user = AnonymousUser()
        request.data = {"review_status": "resolved"}

        view = CommentAbstractAPIView()
        view.update_and_respond(request, self.contribution, self.comment)
예제 #11
0
    def test_create_reviewcomment_to_empty_obs_with_admin(self):
        self.contribution.properties = None
        self.contribution.save()

        url = reverse(
            "api:project_comments", kwargs={"project_id": self.project.id, "contribution_id": self.contribution.id}
        )
        request = self.factory.post(url, {"text": "Comment", "review_status": "open"})
        request.user = self.admin
        request.data = {"text": "Comment", "review_status": "open"}

        view = CommentAbstractAPIView()
        response = self.render(view.create_and_respond(request, self.contribution))
        self.assertEqual(json.loads(response.content).get("text"), "Comment")
        ref = Observation.objects.get(pk=self.contribution.id)
        self.assertEqual(ref.status, "review")
예제 #12
0
    def test_update_comment_with_moderator(self):
        url = reverse('api:project_single_comment',
                      kwargs={
                          'project_id': self.project.id,
                          'observation_id': self.observation.id,
                          'comment_id': self.comment.id
                      })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.moderator
        request.DATA = {'text': 'Updated'}

        view = CommentAbstractAPIView()
        response = self.render(view.update_and_respond(request, self.comment))
        self.assertEqual(json.loads(response.content).get('text'), 'Updated')
        self.assertEqual(
            Comment.objects.get(pk=self.comment.id).text, 'Updated')
예제 #13
0
    def test_resolve_comment_with_invalid_review_status(self):
        url = reverse('api:project_single_comment',
                      kwargs={
                          'project_id': self.project.id,
                          'observation_id': self.observation.id,
                          'comment_id': self.comment.id
                      })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.admin
        request.DATA = {'review_status': 'closed'}

        view = CommentAbstractAPIView()
        response = self.render(view.update_and_respond(request, self.comment))

        ref = Comment.objects.get(pk=self.comment.id)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(ref.review_status, 'open')
예제 #14
0
    def test_resolve_comment_with_moderator(self):
        url = reverse(
            "api:project_single_comment",
            kwargs={
                "project_id": self.project.id,
                "contribution_id": self.contribution.id,
                "comment_id": self.comment.id,
            },
        )
        request = self.factory.patch(url, {"text": "Updated"})
        request.user = self.moderator
        request.data = {"review_status": "resolved"}

        view = CommentAbstractAPIView()
        response = self.render(view.update_and_respond(request, self.contribution, self.comment))
        self.assertEqual(json.loads(response.content).get("review_status"), "resolved")
        self.assertEqual(Observation.objects.get(pk=self.contribution.id).status, "active")
예제 #15
0
    def test_update_comment_with_admin(self):
        url = reverse(
            "api:project_single_comment",
            kwargs={
                "project_id": self.project.id,
                "contribution_id": self.contribution.id,
                "comment_id": self.comment.id,
            },
        )
        request = self.factory.patch(url, {"text": "Updated"})
        request.user = self.admin
        request.data = {"text": "Updated"}

        view = CommentAbstractAPIView()
        response = self.render(view.update_and_respond(request, self.contribution, self.comment))
        self.assertEqual(json.loads(response.content).get("text"), "Updated")
        self.assertEqual(Comment.objects.get(pk=self.comment.id).text, "Updated")
예제 #16
0
    def test_resolve_comment_with_moderator(self):
        url = reverse('api:project_single_comment',
                      kwargs={
                          'project_id': self.project.id,
                          'contribution_id': self.contribution.id,
                          'comment_id': self.comment.id
                      })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.moderator
        request.data = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.update_and_respond(request, self.contribution, self.comment))
        self.assertEqual(
            json.loads(response.content).get('review_status'), 'resolved')
        self.assertEqual(
            Observation.objects.get(pk=self.contribution.id).status, 'active')
예제 #17
0
    def test_resolve_comment_with_invalid_review_status(self):
        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'observation_id': self.observation.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.admin
        request.DATA = {'review_status': 'closed'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.update_and_respond(request, self.comment)
        )

        ref = Comment.objects.get(pk=self.comment.id)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(ref.review_status, 'open')
예제 #18
0
    def test_create_reviewcomment_with_admin(self):
        url = reverse('api:project_comments', kwargs={
            'project_id': self.project.id,
            'contribution_id': self.contribution.id
        })
        request = self.factory.post(
            url, {'text': 'Comment', 'review_status': 'open'}
        )
        request.user = self.admin
        request.data = {'text': 'Comment', 'review_status': 'open'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.create_and_respond(request, self.contribution)
        )
        self.assertEqual(json.loads(response.content).get('text'), 'Comment')
        ref = Observation.objects.get(pk=self.contribution.id)
        self.assertEqual(ref.status, 'review')
예제 #19
0
    def test_create_reviewcomment_with_admin(self):
        url = reverse('api:project_comments',
                      kwargs={
                          'project_id': self.project.id,
                          'observation_id': self.observation.id
                      })
        request = self.factory.post(url, {
            'text': 'Comment',
            'review_status': 'open'
        })
        request.user = self.admin
        request.DATA = {'text': 'Comment', 'review_status': 'open'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.create_and_respond(request, self.observation))
        self.assertEqual(json.loads(response.content).get('text'), 'Comment')
        ref = Observation.objects.get(pk=self.observation.id)
        self.assertEqual(ref.status, 'review')
예제 #20
0
    def test_update_comment_with_moderator(self):
        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'observation_id': self.observation.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.moderator
        request.DATA = {'text': 'Updated'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.update_and_respond(request, self.comment)
        )
        self.assertEqual(json.loads(response.content).get('text'), 'Updated')
        self.assertEqual(
            Comment.objects.get(pk=self.comment.id).text,
            'Updated'
        )
예제 #21
0
    def test_resolve_comment_with_invalid_review_status(self):
        url = reverse(
            "api:project_single_comment",
            kwargs={
                "project_id": self.project.id,
                "contribution_id": self.contribution.id,
                "comment_id": self.comment.id,
            },
        )
        request = self.factory.patch(url, {"text": "Updated"})
        request.user = self.admin
        request.data = {"review_status": "closed"}

        view = CommentAbstractAPIView()
        response = self.render(view.update_and_respond(request, self.contribution, self.comment))

        ref = Comment.objects.get(pk=self.comment.id)
        self.assertEqual(response.status_code, 400)
        self.assertEqual(ref.review_status, "open")
예제 #22
0
    def test_resolve_one_of_two_comment_with_admin(self):
        CommentFactory.create(**{"commentto": self.contribution, "creator": self.creator, "review_status": "open"})

        url = reverse(
            "api:project_single_comment",
            kwargs={
                "project_id": self.project.id,
                "contribution_id": self.contribution.id,
                "comment_id": self.comment.id,
            },
        )
        request = self.factory.patch(url, {"text": "Updated"})
        request.user = self.admin
        request.data = {"review_status": "resolved"}

        view = CommentAbstractAPIView()
        response = self.render(view.update_and_respond(request, self.contribution, self.comment))
        self.assertEqual(json.loads(response.content).get("review_status"), "resolved")
        self.assertEqual(Observation.objects.get(pk=self.contribution.id).status, "review")
예제 #23
0
    def test_resolve_comment_with_admin(self):
        url = reverse('api:project_single_comment',
                      kwargs={
                          'project_id': self.project.id,
                          'observation_id': self.observation.id,
                          'comment_id': self.comment.id
                      })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.admin
        request.DATA = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        response = self.render(view.update_and_respond(request, self.comment))
        self.assertEqual(
            json.loads(response.content).get('review_status'), 'resolved')

        reference = Observation.objects.get(pk=self.observation.id)
        self.assertEqual(reference.status, 'active')
        self.assertIsNotNone(reference.properties)
예제 #24
0
    def test_resolve_comment_with_admin(self):
        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'observation_id': self.observation.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.admin
        request.DATA = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.update_and_respond(request, self.comment)
        )
        self.assertEqual(
            json.loads(response.content).get('review_status'),
            'resolved'
        )

        reference = Observation.objects.get(pk=self.observation.id)
        self.assertEqual(reference.status, 'active')
        self.assertIsNotNone(reference.properties)
예제 #25
0
    def test_resolve_comment_with_moderator(self):
        url = reverse('api:project_single_comment', kwargs={
            'project_id': self.project.id,
            'contribution_id': self.contribution.id,
            'comment_id': self.comment.id
        })
        request = self.factory.patch(url, {'text': 'Updated'})
        request.user = self.moderator
        request.data = {'review_status': 'resolved'}

        view = CommentAbstractAPIView()
        response = self.render(
            view.update_and_respond(request, self.contribution, self.comment)
        )
        self.assertEqual(
            json.loads(response.content).get('review_status'),
            'resolved'
        )
        self.assertEqual(
            Observation.objects.get(pk=self.contribution.id).status,
            'active'
        )