コード例 #1
0
ファイル: parser.py プロジェクト: kewisch/python-unidiff
def parse_unidiff(diff):
    """Unified diff parser, takes a file-like object as argument."""
    ret = PatchSet()
    current_patch = None

    for line in diff:
        # check for source file header
        check_source = RE_SOURCE_FILENAME.match(line)
        if check_source:
            source_file = check_source.group("filename")
            current_patch = None
            continue

        # check for target file header
        check_target = RE_TARGET_FILENAME.match(line)
        if check_target:
            target_file = check_target.group("filename")
            current_patch = PatchedFile(source_file, target_file)
            ret.append(current_patch)
            continue

        # check for hunk header
        re_hunk_header = RE_HUNK_HEADER.match(line)
        if re_hunk_header:
            hunk_info = re_hunk_header.groups()
            hunk = _parse_hunk(diff, *hunk_info)
            current_patch.append(hunk)
    return ret
コード例 #2
0
class TestPatchedFile(unittest2.TestCase):
    """Tests for PatchedFile."""
    def setUp(self):
        self.patched_file = PatchedFile()

    def test_is_added_file(self):
        hunk = Hunk(src_start=0, src_len=0, tgt_start=1, tgt_len=10)
        self.patched_file.append(hunk)
        self.assertTrue(self.patched_file.is_added_file)

    def test_is_deleted_file(self):
        hunk = Hunk(src_start=1, src_len=10, tgt_start=0, tgt_len=0)
        self.patched_file.append(hunk)
        self.assertTrue(self.patched_file.is_deleted_file)

    def test_is_modified_file(self):
        hunk = Hunk(src_start=1, src_len=10, tgt_start=1, tgt_len=8)
        self.patched_file.append(hunk)
        self.assertTrue(self.patched_file.is_modified_file)
コード例 #3
0
class TestPatchedFile(unittest.TestCase):
    """Tests for PatchedFile."""

    def setUp(self):
        self.patched_file = PatchedFile()

    def test_is_added_file(self):
        hunk = Hunk(src_start=0, src_len=0, tgt_start=1, tgt_len=10)
        self.patched_file.append(hunk)
        self.assertTrue(self.patched_file.is_added_file)

    def test_is_deleted_file(self):
        hunk = Hunk(src_start=1, src_len=10, tgt_start=0, tgt_len=0)
        self.patched_file.append(hunk)
        self.assertTrue(self.patched_file.is_deleted_file)

    def test_is_modified_file(self):
        hunk = Hunk(src_start=1, src_len=10, tgt_start=1, tgt_len=8)
        self.patched_file.append(hunk)
        self.assertTrue(self.patched_file.is_modified_file)
コード例 #4
0
 def setUp(self):
     super(TestPatchedFile, self).setUp()
     self.patched_file = PatchedFile()
コード例 #5
0
 def setUp(self):
     super(TestPatchedFile, self).setUp()
     self.patched_file = PatchedFile()
コード例 #6
0
 def setUp(self):
     self.patched_file = PatchedFile()
コード例 #7
0
 def setUp(self):
     self.patched_file = PatchedFile()