def test_get_with_line(self):
        """Testing the
        GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API
        with ?line=
        """
        diff_comment_text = 'Sample comment.'
        diff_comment_line = 10

        review_request = self.create_review_request(create_repository=True,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        self.create_diff_comment(review, filediff,
                                 text=diff_comment_text,
                                 first_line=diff_comment_line)
        self.create_diff_comment(review, filediff,
                                 first_line=diff_comment_line + 1)

        rsp = self.apiGet(get_filediff_comment_list_url(filediff), {
            'line': diff_comment_line,
        }, expected_mimetype=filediff_comment_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(len(rsp['diff_comments']), 1)
        self.assertEqual(rsp['diff_comments'][0]['text'], diff_comment_text)
        self.assertEqual(rsp['diff_comments'][0]['first_line'],
                         diff_comment_line)
예제 #2
0
    def test_get_comments_with_line(self):
        """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/?line= API"""
        diff_comment_text = 'Sample comment.'
        diff_comment_line = 10

        review_request = self.create_review_request(create_repository=True,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        self.create_diff_comment(review, filediff,
                                 text=diff_comment_text,
                                 first_line=diff_comment_line)
        self.create_diff_comment(review, filediff,
                                 first_line=diff_comment_line + 1)

        rsp = self.apiGet(get_filediff_comment_list_url(filediff), {
            'line': diff_comment_line,
        }, expected_mimetype=filediff_comment_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')

        self.assertEqual(len(rsp['diff_comments']), 1)
        self.assertEqual(rsp['diff_comments'][0]['text'], diff_comment_text)
        self.assertEqual(rsp['diff_comments'][0]['first_line'],
                         diff_comment_line)
예제 #3
0
    def test_get_with_line(self):
        """Testing the
        GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API
        with ?line=
        """
        diff_comment_text = "Sample comment."
        diff_comment_line = 10

        review_request = self.create_review_request(create_repository=True, publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        self.create_diff_comment(review, filediff, text=diff_comment_text, first_line=diff_comment_line)
        self.create_diff_comment(review, filediff, first_line=diff_comment_line + 1)

        rsp = self.api_get(
            get_filediff_comment_list_url(filediff),
            {"line": diff_comment_line},
            expected_mimetype=filediff_comment_list_mimetype,
        )
        self.assertEqual(rsp["stat"], "ok")

        self.assertEqual(len(rsp["diff_comments"]), 1)
        self.assertEqual(rsp["diff_comments"][0]["text"], diff_comment_text)
        self.assertEqual(rsp["diff_comments"][0]["first_line"], diff_comment_line)
    def test_get_with_site_no_access(self):
        """Testing the
        GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API
        with a local site and Permission Denied error
        """
        diff_comment_text = 'Sample comment.'

        self._login_user(local_site=True)

        review_request = self.create_review_request(with_local_site=True,
                                                    create_repository=True,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        self.create_diff_comment(review, filediff, text=diff_comment_text)

        self._login_user()

        rsp = self.apiGet(
            get_filediff_comment_list_url(filediff, self.local_site_name),
            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
    def test_get_with_site(self):
        """Testing the
        GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API
        with a local site
        """
        diff_comment_text = 'Sample comment.'

        self._login_user(local_site=True)

        review_request = self.create_review_request(with_local_site=True,
                                                    create_repository=True,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        comment = self.create_diff_comment(review, filediff,
                                           text=diff_comment_text)

        rsp = self.apiGet(
            get_filediff_comment_list_url(filediff, self.local_site_name),
            expected_mimetype=filediff_comment_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['diff_comments']), 1)
        self.assertEqual(rsp['diff_comments'][0]['text'], comment.text)
    def setup_http_not_allowed_list_test(self, user):
        review_request = self.create_review_request(create_repository=True,
                                                    submitter=user,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        return get_filediff_comment_list_url(filediff)
예제 #7
0
    def setup_http_not_allowed_list_test(self, user):
        review_request = self.create_review_request(create_repository=True,
                                                    submitter=user,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        return get_filediff_comment_list_url(filediff)
예제 #8
0
    def setup_review_request_child_test(self, review_request):
        if not review_request.repository_id:
            # The group tests don't create a repository by default.
            review_request.repository = self.create_repository()
            review_request.save()

        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)
        self.create_review(review_request, publish=True)

        return (get_filediff_comment_list_url(filediff), filediff_comment_list_mimetype)
예제 #9
0
    def setup_review_request_child_test(self, review_request):
        if not review_request.repository_id:
            # The group tests don't create a repository by default.
            review_request.repository = self.create_repository()
            review_request.save()

        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)
        self.create_review(review_request, publish=True)

        return (get_filediff_comment_list_url(filediff),
                filediff_comment_list_mimetype)
예제 #10
0
    def setup_basic_get_test(self, user, with_local_site, local_site_name, populate_items):
        review_request = self.create_review_request(
            create_repository=True, with_local_site=with_local_site, submitter=user, publish=True
        )
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        if populate_items:
            review = self.create_review(review_request, publish=True)
            items = [self.create_diff_comment(review, filediff)]
        else:
            items = []

        return (get_filediff_comment_list_url(filediff, local_site_name), filediff_comment_list_mimetype, items)
예제 #11
0
    def test_get_comments_as_anonymous(self):
        """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API as an anonymous user"""
        diff_comment_text = 'Sample comment.'

        review_request = self.create_review_request(create_repository=True,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        comment = self.create_diff_comment(review, filediff,
                                           text=diff_comment_text)

        self.client.logout()

        rsp = self.apiGet(get_filediff_comment_list_url(filediff),
                          expected_mimetype=filediff_comment_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['diff_comments']), 1)
        self.assertEqual(rsp['diff_comments'][0]['text'], comment.text)
예제 #12
0
    def setup_basic_get_test(self, user, with_local_site, local_site_name,
                             populate_items):
        review_request = self.create_review_request(
            create_repository=True,
            with_local_site=with_local_site,
            submitter=user,
            publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        if populate_items:
            review = self.create_review(review_request, publish=True)
            items = [
                self.create_diff_comment(review, filediff),
            ]
        else:
            items = []

        return (get_filediff_comment_list_url(filediff, local_site_name),
                filediff_comment_list_mimetype, items)
예제 #13
0
    def test_get_comments_with_site_no_access(self):
        """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API with a local site and Permission Denied error"""
        diff_comment_text = 'Sample comment.'

        self._login_user(local_site=True)

        review_request = self.create_review_request(with_local_site=True,
                                                    create_repository=True,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        self.create_diff_comment(review, filediff, text=diff_comment_text)

        self._login_user()

        rsp = self.apiGet(
            get_filediff_comment_list_url(filediff, self.local_site_name),
            expected_status=403)
        self.assertEqual(rsp['stat'], 'fail')
        self.assertEqual(rsp['err']['code'], PERMISSION_DENIED.code)
예제 #14
0
    def test_get_comments_with_site(self):
        """Testing the GET review-requests/<id>/diffs/<revision>/files/<id>/diff-comments/ API with a local site"""
        diff_comment_text = 'Sample comment.'

        self._login_user(local_site=True)

        review_request = self.create_review_request(with_local_site=True,
                                                    create_repository=True,
                                                    publish=True)
        diffset = self.create_diffset(review_request)
        filediff = self.create_filediff(diffset)

        review = self.create_review(review_request, publish=True)
        comment = self.create_diff_comment(review, filediff,
                                           text=diff_comment_text)

        rsp = self.apiGet(
            get_filediff_comment_list_url(filediff, self.local_site_name),
            expected_mimetype=filediff_comment_list_mimetype)
        self.assertEqual(rsp['stat'], 'ok')
        self.assertEqual(len(rsp['diff_comments']), 1)
        self.assertEqual(rsp['diff_comments'][0]['text'], comment.text)