Пример #1
0
    def test_parser_empty_log(self):
        """Test if it parsers an empty git log stream"""

        with open("data/git_log_empty.txt", 'r') as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertListEqual(commits, [])
Пример #2
0
    def test_parser_empty_log(self):
        """Test if it parsers an empty git log stream"""

        with open("data/git_log_empty.txt", 'r') as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertListEqual(commits, [])
Пример #3
0
    def test_parse_incomplete_log(self):
        """Test if it parsers fails when the log is incompleted"""

        with self.assertRaisesRegex(ParseError,
                                    'unexpected end of log stream'):
            with open("data/git_log_incompleted.txt", 'r') as f:
                parser = GitParser(f)
                _ = [commit for commit in parser.parse()]
Пример #4
0
    def test_parser_merge_commit(self):
        """Test if it parses all the available data on a merge commit"""

        with open("data/git_log_merge.txt", 'r') as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertEqual(len(commits), 2)

        expected = {
                    'commit' : '8cbdd85bda499d028b8f128191f392d701e8e41d',
                    'parents' : ['72b5ac54d620b29cae23d25f0405f2765b466f72',
                                 '302f0493f0bfaabd6f77ce7bfaa12620abf74948'],
                    'refs' : [],
                    'Merge' : '72b5ac5 302f049',
                    'Author' : 'Linus Torvalds <*****@*****.**>',
                    'AuthorDate' : 'Tue Aug 2 19:47:06 2016 -0400',
                    'Commit' : 'Linus Torvalds <*****@*****.**>',
                    'CommitDate' : 'Tue Aug 2 19:47:06 2016 -0400',
                    'message' : "Merge tag 'for-linus-v4.8' of git://github.com/martinbrandenburg/linux",
                    'files' : [{
                                'file' : "Documentation/filesystems/orangefs.txt",
                                'added' : '46',
                                'removed' : '4'
                               },
                               {
                                'file' : "fs/orangefs/dcache.c",
                                'added' : '4',
                                'removed' : '0'
                               },
                               {
                                'file' : "fs/orangefs/inode.c",
                                'added' : '3',
                                'removed' : '3'
                               }]
                    }
        self.assertDictEqual(commits[0], expected)

        expected = {
                    'commit' : '456a68ee1407a77f3e804a30dff245bb6c6b872f',
                    'parents' : ['ce8e0b86a1e9877f42fe9453ede418519115f367',
                                 '51a3b654f252210572297f47597b31527c475fb8'],
                    'refs' : ['HEAD -> refs/heads/master'],
                    'Merge' : 'ce8e0b8 51a3b65',
                    'Author' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'AuthorDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'Commit' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'CommitDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'message' : "Merge branch 'lzp'\n\nConflicts:\n\taaa/otherthing",
                    'files' : [{'file' : "aaa/otherthing.renamed",
                                'added' : '1',
                                'removed' : '0',
                                'modes' : ['100644', '100644', '100644'],
                                'indexes' : ['e69de29...', '58a6c75...', '58a6c75...'],
                                'action' : 'MR'}]
                    }
        self.assertDictEqual(commits[1], expected)
Пример #5
0
    def test_parser_merge_commit(self):
        """Test if it parses all the available data on a merge commit"""

        with open("data/git_log_merge.txt", 'r') as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertEqual(len(commits), 2)

        expected = {
                    'commit' : '8cbdd85bda499d028b8f128191f392d701e8e41d',
                    'parents' : ['72b5ac54d620b29cae23d25f0405f2765b466f72',
                                 '302f0493f0bfaabd6f77ce7bfaa12620abf74948'],
                    'refs' : [],
                    'Merge' : '72b5ac5 302f049',
                    'Author' : 'Linus Torvalds <*****@*****.**>',
                    'AuthorDate' : 'Tue Aug 2 19:47:06 2016 -0400',
                    'Commit' : 'Linus Torvalds <*****@*****.**>',
                    'CommitDate' : 'Tue Aug 2 19:47:06 2016 -0400',
                    'message' : "Merge tag 'for-linus-v4.8' of git://github.com/martinbrandenburg/linux",
                    'files' : [{
                                'file' : "Documentation/filesystems/orangefs.txt",
                                'added' : '46',
                                'removed' : '4'
                               },
                               {
                                'file' : "fs/orangefs/dcache.c",
                                'added' : '4',
                                'removed' : '0'
                               },
                               {
                                'file' : "fs/orangefs/inode.c",
                                'added' : '3',
                                'removed' : '3'
                               }]
                    }
        self.assertDictEqual(commits[0], expected)

        expected = {
                    'commit' : '456a68ee1407a77f3e804a30dff245bb6c6b872f',
                    'parents' : ['ce8e0b86a1e9877f42fe9453ede418519115f367',
                                 '51a3b654f252210572297f47597b31527c475fb8'],
                    'refs' : ['HEAD -> refs/heads/master'],
                    'Merge' : 'ce8e0b8 51a3b65',
                    'Author' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'AuthorDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'Commit' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'CommitDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'message' : "Merge branch 'lzp'\n\nConflicts:\n\taaa/otherthing",
                    'files' : [{'file' : "aaa/otherthing.renamed",
                                'added' : '1',
                                'removed' : '0',
                                'modes' : ['100644', '100644', '100644'],
                                'indexes' : ['e69de29...', '58a6c75...', '58a6c75...'],
                                'action' : 'MR'}]
                    }
        self.assertDictEqual(commits[1], expected)
Пример #6
0
    def test_parser(self):
        """Test if it parsers a git log stream"""

        with open("data/git_log.txt", 'r') as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertEqual(len(commits), 9)

        expected = {
                    'commit' : '456a68ee1407a77f3e804a30dff245bb6c6b872f',
                    'parents' : ['ce8e0b86a1e9877f42fe9453ede418519115f367',
                                 '51a3b654f252210572297f47597b31527c475fb8'],
                    'refs' : ['HEAD -> refs/heads/master'],
                    'Merge' : 'ce8e0b8 51a3b65',
                    'Author' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'AuthorDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'Commit' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'CommitDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'message' : "Merge branch 'lzp'\n\nConflicts:\n\taaa/otherthing",
                    'files' : [{'file' : "aaa/otherthing.renamed",
                                'added' : '1',
                                'removed' : '0',
                                'modes' : ['100644', '100644', '100644'],
                                'indexes' : ['e69de29...', '58a6c75...', '58a6c75...'],
                                'action' : 'MR'}]
                    }
        self.assertDictEqual(commits[0], expected)

        expected = {
                    'commit' : 'c0d66f92a95e31c77be08dc9d0f11a16715d1885',
                    'parents' : ['7debcf8a2f57f86663809c58b5c07a398be7674c'],
                    'refs' : [],
                    'Author' : 'Eduardo Morais <*****@*****.**>',
                    'AuthorDate' : 'Tue Aug 14 14:35:02 2012 -0300',
                    'Commit' : 'Eduardo Morais <*****@*****.**>',
                    'CommitDate': 'Tue Aug 14 14:35:02 2012 -0300',
                    'message' : 'Deleted and renamed file',
                    'files' : [{'file': 'bbb/bthing',
                                'added': '0',
                                'removed' : '0',
                                'modes' : ['100644', '000000'],
                                'indexes' : ['e69de29...', '0000000...'],
                                'action' : 'D'},
                                {'file': 'bbb/something',
                                 'newfile' : 'bbb/something.renamed',
                                 'added': '0',
                                 'removed' : '0',
                                 'modes' : ['100644', '100644'],
                                 'indexes' : ['e69de29...', 'e69de29...'],
                                 'action' : 'R100'}
                              ]
                    }
        self.assertDictEqual(commits[5], expected)
Пример #7
0
    def test_parser(self):
        """Test if it parsers a git log stream"""

        with open("data/git_log.txt", 'r') as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertEqual(len(commits), 9)

        expected = {
                    'commit' : '456a68ee1407a77f3e804a30dff245bb6c6b872f',
                    'parents' : ['ce8e0b86a1e9877f42fe9453ede418519115f367',
                                 '51a3b654f252210572297f47597b31527c475fb8'],
                    'refs' : ['HEAD -> refs/heads/master'],
                    'Merge' : 'ce8e0b8 51a3b65',
                    'Author' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'AuthorDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'Commit' : 'Zhongpeng Lin (林中鹏) <*****@*****.**>',
                    'CommitDate' : 'Tue Feb 11 22:10:39 2014 -0800',
                    'message' : "Merge branch 'lzp'\n\nConflicts:\n\taaa/otherthing",
                    'files' : [{'file' : "aaa/otherthing.renamed",
                                'added' : '1',
                                'removed' : '0',
                                'modes' : ['100644', '100644', '100644'],
                                'indexes' : ['e69de29...', '58a6c75...', '58a6c75...'],
                                'action' : 'MR'}]
                    }
        self.assertDictEqual(commits[0], expected)

        expected = {
                    'commit' : 'c0d66f92a95e31c77be08dc9d0f11a16715d1885',
                    'parents' : ['7debcf8a2f57f86663809c58b5c07a398be7674c'],
                    'refs' : [],
                    'Author' : 'Eduardo Morais <*****@*****.**>',
                    'AuthorDate' : 'Tue Aug 14 14:35:02 2012 -0300',
                    'Commit' : 'Eduardo Morais <*****@*****.**>',
                    'CommitDate': 'Tue Aug 14 14:35:02 2012 -0300',
                    'message' : 'Deleted and renamed file',
                    'files' : [{'file': 'bbb/bthing',
                                'added': '0',
                                'removed' : '0',
                                'modes' : ['100644', '000000'],
                                'indexes' : ['e69de29...', '0000000...'],
                                'action' : 'D'},
                                {'file': 'bbb/something',
                                 'newfile' : 'bbb/something.renamed',
                                 'added': '0',
                                 'removed' : '0',
                                 'modes' : ['100644', '100644'],
                                 'indexes' : ['e69de29...', 'e69de29...'],
                                 'action' : 'R100'}
                              ]
                    }
        self.assertDictEqual(commits[5], expected)
Пример #8
0
    def test_parser_merge_commit(self):
        """Test if it parses all the available data on a merge commit"""

        with open("data/git_log_merge.txt", "r") as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertEqual(len(commits), 2)

        expected = {
            "commit": "8cbdd85bda499d028b8f128191f392d701e8e41d",
            "parents": ["72b5ac54d620b29cae23d25f0405f2765b466f72", "302f0493f0bfaabd6f77ce7bfaa12620abf74948"],
            "refs": [],
            "Merge": "72b5ac5 302f049",
            "Author": "Linus Torvalds <*****@*****.**>",
            "AuthorDate": "Tue Aug 2 19:47:06 2016 -0400",
            "Commit": "Linus Torvalds <*****@*****.**>",
            "CommitDate": "Tue Aug 2 19:47:06 2016 -0400",
            "message": "Merge tag 'for-linus-v4.8' of git://github.com/martinbrandenburg/linux",
            "files": [
                {"file": "Documentation/filesystems/orangefs.txt", "added": "46", "removed": "4"},
                {"file": "fs/orangefs/dcache.c", "added": "4", "removed": "0"},
                {"file": "fs/orangefs/inode.c", "added": "3", "removed": "3"},
            ],
        }
        self.assertDictEqual(commits[0], expected)

        expected = {
            "commit": "456a68ee1407a77f3e804a30dff245bb6c6b872f",
            "parents": ["ce8e0b86a1e9877f42fe9453ede418519115f367", "51a3b654f252210572297f47597b31527c475fb8"],
            "refs": ["HEAD -> refs/heads/master"],
            "Merge": "ce8e0b8 51a3b65",
            "Author": "Zhongpeng Lin (林中鹏) <*****@*****.**>",
            "AuthorDate": "Tue Feb 11 22:10:39 2014 -0800",
            "Commit": "Zhongpeng Lin (林中鹏) <*****@*****.**>",
            "CommitDate": "Tue Feb 11 22:10:39 2014 -0800",
            "message": "Merge branch 'lzp'\n\nConflicts:\n\taaa/otherthing",
            "files": [
                {
                    "file": "aaa/otherthing.renamed",
                    "added": "1",
                    "removed": "0",
                    "modes": ["100644", "100644", "100644"],
                    "indexes": ["e69de29...", "58a6c75...", "58a6c75..."],
                    "action": "MR",
                }
            ],
        }
        self.assertDictEqual(commits[1], expected)
Пример #9
0
    def test_parser(self):
        """Test if it parsers a git log stream"""

        with open("data/git_log.txt", "r") as f:
            parser = GitParser(f)
            commits = [commit for commit in parser.parse()]

        self.assertEqual(len(commits), 9)

        expected = {
            "commit": "456a68ee1407a77f3e804a30dff245bb6c6b872f",
            "parents": ["ce8e0b86a1e9877f42fe9453ede418519115f367", "51a3b654f252210572297f47597b31527c475fb8"],
            "refs": ["HEAD -> refs/heads/master"],
            "Merge": "ce8e0b8 51a3b65",
            "Author": "Zhongpeng Lin (林中鹏) <*****@*****.**>",
            "AuthorDate": "Tue Feb 11 22:10:39 2014 -0800",
            "Commit": "Zhongpeng Lin (林中鹏) <*****@*****.**>",
            "CommitDate": "Tue Feb 11 22:10:39 2014 -0800",
            "message": "Merge branch 'lzp'\n\nConflicts:\n\taaa/otherthing",
            "files": [
                {
                    "file": "aaa/otherthing.renamed",
                    "added": "1",
                    "removed": "0",
                    "modes": ["100644", "100644", "100644"],
                    "indexes": ["e69de29...", "58a6c75...", "58a6c75..."],
                    "action": "MR",
                }
            ],
        }
        self.assertDictEqual(commits[0], expected)

        expected = {
            "commit": "c0d66f92a95e31c77be08dc9d0f11a16715d1885",
            "parents": ["7debcf8a2f57f86663809c58b5c07a398be7674c"],
            "refs": [],
            "Author": "Eduardo Morais <*****@*****.**>",
            "AuthorDate": "Tue Aug 14 14:35:02 2012 -0300",
            "Commit": "Eduardo Morais <*****@*****.**>",
            "CommitDate": "Tue Aug 14 14:35:02 2012 -0300",
            "message": "Deleted and renamed file",
            "files": [
                {
                    "file": "bbb/bthing",
                    "added": "0",
                    "removed": "0",
                    "modes": ["100644", "000000"],
                    "indexes": ["e69de29...", "0000000..."],
                    "action": "D",
                },
                {
                    "file": "bbb/something",
                    "newfile": "bbb/something.renamed",
                    "added": "0",
                    "removed": "0",
                    "modes": ["100644", "100644"],
                    "indexes": ["e69de29...", "e69de29..."],
                    "action": "R100",
                },
            ],
        }
        self.assertDictEqual(commits[5], expected)