Changeset - db6573f71b89
[Not reviewed]
default
0 2 0
Mads Kiilerich - 6 years ago 2019-12-22 20:28:00
mads@kiilerich.com
Grafted from: e407f1dcb58c
tests: fix ordering of get_inline_comments output

Py3 would give different ordering.
2 files changed with 16 insertions and 16 deletions:
0 comments (0 inline, 0 general)
kallithea/model/comment.py
Show inline comments
 
@@ -248,25 +248,25 @@ class ChangesetCommentsModel(object):
 
                f_path=None, line_no=None):
 
        """
 
        Gets inline comments for either revision or pull_request.
 

	
 
        Returns a list of tuples with file path and list of comments per line number.
 
        """
 
        comments = self._get_comments(repo_id, revision=revision, pull_request=pull_request,
 
                                      inline=True, f_path=f_path, line_no=line_no)
 

	
 
        paths = defaultdict(lambda: defaultdict(list))
 
        for co in comments:
 
            paths[co.f_path][co.line_no].append(co)
 
        return paths.items()
 
        return sorted(paths.items())
 

	
 
    def _get_comments(self, repo_id, revision=None, pull_request=None,
 
                inline=False, f_path=None, line_no=None):
 
        """
 
        Gets comments for either revision or pull_request_id, either inline or general.
 
        If a file path and optionally line number are given, return only the matching inline comments.
 
        """
 
        if f_path is None and line_no is not None:
 
            raise Exception("line_no only makes sense if f_path is given.")
 

	
 
        if inline is None and f_path is not None:
 
            raise Exception("f_path only makes sense for inline comments.")
kallithea/tests/models/test_comments.py
Show inline comments
 
@@ -117,49 +117,49 @@ class TestComments(TestController):
 
                    text=text3,
 
                    repo=HG_REPO,
 
                    author=TEST_USER_REGULAR_LOGIN,
 
                    revision=revision,
 
                    f_path=f_path3,
 
                    line_no=line_no3,
 
                    send_email=False)
 

	
 
            comments, inline_comments = self._check_comment_count(repo_id, revision,
 
                    expected_len_comments=0, expected_len_inline_comments=2)
 
            # inline_comments is a list of tuples (file_path, dict)
 
            # where the dict keys are line numbers and values are lists of comments
 
            assert inline_comments[1][0] == f_path
 
            assert len(inline_comments[1][1]) == 2
 
            assert inline_comments[1][1][line_no][0].text == text
 
            assert inline_comments[1][1][line_no2][0].text == text2
 
            assert inline_comments[0][0] == f_path
 
            assert len(inline_comments[0][1]) == 2
 
            assert inline_comments[0][1][line_no][0].text == text
 
            assert inline_comments[0][1][line_no2][0].text == text2
 

	
 
            assert inline_comments[0][0] == f_path3
 
            assert len(inline_comments[0][1]) == 1
 
            assert line_no3 in inline_comments[0][1]
 
            assert inline_comments[0][1][line_no3][0].text == text3
 
            assert inline_comments[1][0] == f_path3
 
            assert len(inline_comments[1][1]) == 1
 
            assert line_no3 in inline_comments[1][1]
 
            assert inline_comments[1][1][line_no3][0].text == text3
 

	
 
            # now delete only one comment
 
            ChangesetCommentsModel().delete(new_comment2)
 

	
 
            comments, inline_comments = self._check_comment_count(repo_id, revision,
 
                    expected_len_comments=0, expected_len_inline_comments=2)
 
            # inline_comments is a list of tuples (file_path, dict)
 
            # where the dict keys are line numbers and values are lists of comments
 
            assert inline_comments[1][0] == f_path
 
            assert len(inline_comments[1][1]) == 1
 
            assert inline_comments[1][1][line_no][0].text == text
 
            assert inline_comments[0][0] == f_path
 
            assert len(inline_comments[0][1]) == 1
 
            assert inline_comments[0][1][line_no][0].text == text
 

	
 
            assert inline_comments[0][0] == f_path3
 
            assert len(inline_comments[0][1]) == 1
 
            assert line_no3 in inline_comments[0][1]
 
            assert inline_comments[0][1][line_no3][0].text == text3
 
            assert inline_comments[1][0] == f_path3
 
            assert len(inline_comments[1][1]) == 1
 
            assert line_no3 in inline_comments[1][1]
 
            assert inline_comments[1][1][line_no3][0].text == text3
 

	
 
            # now delete all others
 
            ChangesetCommentsModel().delete(new_comment)
 
            ChangesetCommentsModel().delete(new_comment3)
 

	
 
            self._check_comment_count(repo_id, revision,
 
                    expected_len_comments=0, expected_len_inline_comments=0)
 

	
 
    def test_selective_retrieval_of_inline_comments(self):
 
        with test_context(self.app):
 
            repo_id = Repository.get_by_repo_name(HG_REPO).repo_id
 
            revision = '9a7b4ff9e8b40bbda72fc75f162325b9baa45cda'
0 comments (0 inline, 0 general)