def test_post_with_http_303(self):
        """Testing the POST
        review-requests/<id>/reviews/<id>/replies/<id>/general-comments/ API
        with second instance of same reply
        """
        comment_text = "My Comment Text"

        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request, user=self.user,
                                    publish=True)
        comment = self.create_general_comment(review)
        reply = self.create_reply(review, user=self.user)
        reply_comment = self.create_general_comment(reply, reply_to=comment)

        # Now post another reply to the same comment in the same review.
        rsp = self.api_post(
            get_review_reply_general_comment_list_url(reply),
            {
                'reply_to_id': comment.pk,
                'text': comment_text
            },
            expected_status=303,
            expected_mimetype=review_reply_general_comment_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply_comment = GeneralComment.objects.get(
            pk=rsp['general_comment']['id'])
        self.assertEqual(reply_comment.text, comment_text)
    def test_post_with_http_303(self):
        """Testing the POST
        review-requests/<id>/reviews/<id>/replies/<id>/general-comments/ API
        with second instance of same reply
        """
        comment_text = "My Comment Text"

        review_request = self.create_review_request(publish=True)
        review = self.create_review(review_request,
                                    user=self.user,
                                    publish=True)
        comment = self.create_general_comment(review)
        reply = self.create_reply(review, user=self.user)
        reply_comment = self.create_general_comment(reply, reply_to=comment)

        # Now post another reply to the same comment in the same review.
        rsp = self.api_post(
            get_review_reply_general_comment_list_url(reply), {
                'reply_to_id': comment.pk,
                'text': comment_text
            },
            expected_status=303,
            expected_mimetype=review_reply_general_comment_item_mimetype)

        self.assertEqual(rsp['stat'], 'ok')

        reply_comment = GeneralComment.objects.get(
            pk=rsp['general_comment']['id'])
        self.assertEqual(reply_comment.text, comment_text)
    def setup_review_request_child_test(self, review_request):
        review = self.create_review(review_request, user=self.user,
                                    publish=True)
        self.create_general_comment(review)
        reply = self.create_reply(review, user=self.user)

        return (get_review_reply_general_comment_list_url(reply),
                review_reply_general_comment_list_mimetype)
    def setup_review_request_child_test(self, review_request):
        review = self.create_review(review_request,
                                    user=self.user,
                                    publish=True)
        self.create_general_comment(review)
        reply = self.create_reply(review, user=self.user)

        return (get_review_reply_general_comment_list_url(reply),
                review_reply_general_comment_list_mimetype)
    def setup_basic_post_test(self, user, with_local_site, local_site_name,
                              post_valid_data):
        review_request = self.create_review_request(
            with_local_site=with_local_site, submitter=user, publish=True)
        review = self.create_review(review_request, user=user, publish=True)
        comment = self.create_general_comment(review)
        reply = self.create_reply(review, user=user)

        return (get_review_reply_general_comment_list_url(
            reply,
            local_site_name), review_reply_general_comment_item_mimetype, {
                'reply_to_id': comment.pk,
                'text': 'Test comment',
            }, [reply, comment])
    def setup_basic_post_test(self, user, with_local_site, local_site_name,
                              post_valid_data):
        review_request = self.create_review_request(
            with_local_site=with_local_site,
            submitter=user,
            publish=True)
        review = self.create_review(review_request, user=user, publish=True)
        comment = self.create_general_comment(review)
        reply = self.create_reply(review, user=user)

        return (get_review_reply_general_comment_list_url(reply,
                                                          local_site_name),
                review_reply_general_comment_item_mimetype,
                {
                    'reply_to_id': comment.pk,
                    'text': 'Test comment',
                },
                [reply, comment])
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        review_request = self.create_review_request(
            with_local_site=with_local_site, submitter=user, publish=True)
        review = self.create_review(review_request, user=user)
        comment = self.create_general_comment(review)
        reply = self.create_reply(review, user=user)

        if populate_items:
            items = [
                self.create_general_comment(reply, reply_to=comment),
            ]
        else:
            items = []

        return (get_review_reply_general_comment_list_url(
            reply, local_site_name),
                review_reply_general_comment_list_mimetype, items)
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        review_request = self.create_review_request(
            with_local_site=with_local_site,
            submitter=user,
            publish=True)
        review = self.create_review(review_request, user=user)
        comment = self.create_general_comment(review)
        reply = self.create_reply(review, user=user)

        if populate_items:
            items = [
                self.create_general_comment(reply, reply_to=comment),
            ]
        else:
            items = []

        return (get_review_reply_general_comment_list_url(reply,
                                                          local_site_name),
                review_reply_general_comment_list_mimetype,
                items)