本文整理汇总了Python中git.Diff类的典型用法代码示例。如果您正苦于以下问题:Python Diff类的具体用法?Python Diff怎么用?Python Diff使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Diff类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_diff_with_rename
def test_diff_with_rename(self):
output = StringProcessAdapter(fixture('diff_rename'))
diffs = Diff._index_from_patch_format(self.rorepo, output.stdout)
self._assert_diff_format(diffs)
assert_equal(1, len(diffs))
diff = diffs[0]
assert_true(diff.renamed_file)
assert_true(diff.renamed)
assert_equal(diff.rename_from, u'Jérôme')
assert_equal(diff.rename_to, u'müller')
assert_equal(diff.raw_rename_from, b'J\xc3\xa9r\xc3\xb4me')
assert_equal(diff.raw_rename_to, b'm\xc3\xbcller')
assert isinstance(str(diff), str)
output = StringProcessAdapter(fixture('diff_rename_raw'))
diffs = Diff._index_from_raw_format(self.rorepo, output.stdout)
assert len(diffs) == 1
diff = diffs[0]
assert diff.renamed_file
assert diff.renamed
assert diff.rename_from == 'this'
assert diff.rename_to == 'that'
assert len(list(diffs.iter_change_type('R'))) == 1
示例2: test_diff_with_rename
def test_diff_with_rename(self):
output = StringProcessAdapter(fixture('diff_rename'))
diffs = Diff._index_from_patch_format(self.rorepo, output)
self._assert_diff_format(diffs)
assert_equal(1, len(diffs))
diff = diffs[0]
assert_true(diff.renamed_file)
assert_true(diff.renamed)
assert_equal(diff.rename_from, u'Jérôme')
assert_equal(diff.rename_to, u'müller')
assert_equal(diff.raw_rename_from, b'J\xc3\xa9r\xc3\xb4me')
assert_equal(diff.raw_rename_to, b'm\xc3\xbcller')
assert isinstance(str(diff), str)
output = StringProcessAdapter(fixture('diff_rename_raw'))
diffs = Diff._index_from_raw_format(self.rorepo, output)
self.assertEqual(len(diffs), 1)
diff = diffs[0]
self.assertIsNotNone(diff.renamed_file)
self.assertIsNotNone(diff.renamed)
self.assertEqual(diff.rename_from, 'this')
self.assertEqual(diff.rename_to, 'that')
self.assertEqual(diff.change_type, 'R')
self.assertEqual(diff.score, 100)
self.assertEqual(len(list(diffs.iter_change_type('R'))), 1)
示例3: test_diff_with_change_in_type
def test_diff_with_change_in_type(self):
output = StringProcessAdapter(fixture('diff_change_in_type'))
diffs = Diff._index_from_patch_format(self.rorepo, output)
self._assert_diff_format(diffs)
assert_equal(2, len(diffs))
diff = diffs[0]
self.assertIsNotNone(diff.deleted_file)
assert_equal(diff.a_path, 'this')
assert_equal(diff.b_path, 'this')
assert isinstance(str(diff), str)
diff = diffs[1]
assert_equal(diff.a_path, None)
assert_equal(diff.b_path, 'this')
self.assertIsNotNone(diff.new_file)
assert isinstance(str(diff), str)
output = StringProcessAdapter(fixture('diff_change_in_type_raw'))
diffs = Diff._index_from_raw_format(self.rorepo, output)
self.assertEqual(len(diffs), 1)
diff = diffs[0]
self.assertEqual(diff.rename_from, None)
self.assertEqual(diff.rename_to, None)
self.assertEqual(diff.change_type, 'T')
self.assertEqual(len(list(diffs.iter_change_type('T'))), 1)
示例4: test_diff_patch_format
def test_diff_patch_format(self):
# test all of the 'old' format diffs for completness - it should at least
# be able to deal with it
fixtures = ("diff_2", "diff_2f", "diff_f", "diff_i", "diff_mode_only",
"diff_new_mode", "diff_numstat", "diff_p", "diff_rename",
"diff_tree_numstat_root")
for fixture_name in fixtures:
diff_proc = StringProcessAdapter(fixture(fixture_name))
Diff._index_from_patch_format(self.rorepo, diff_proc.stdout)
示例5: test_list_from_string_new_mode
def test_list_from_string_new_mode(self):
output = StringProcessAdapter(fixture('diff_new_mode'))
diffs = Diff._index_from_patch_format(self.rorepo, output.stdout)
self._assert_diff_format(diffs)
assert_equal(1, len(diffs))
assert_equal(10, len(diffs[0].diff.splitlines()))
示例6: test_diff_unsafe_paths
def test_diff_unsafe_paths(self):
output = StringProcessAdapter(fixture('diff_patch_unsafe_paths'))
res = Diff._index_from_patch_format(None, output.stdout)
# The "Additions"
self.assertEqual(res[0].b_path, u'path/ starting with a space')
self.assertEqual(res[1].b_path, u'path/"with-quotes"')
self.assertEqual(res[2].b_path, u"path/'with-single-quotes'")
self.assertEqual(res[3].b_path, u'path/ending in a space ')
self.assertEqual(res[4].b_path, u'path/with\ttab')
self.assertEqual(res[5].b_path, u'path/with\nnewline')
self.assertEqual(res[6].b_path, u'path/with spaces')
self.assertEqual(res[7].b_path, u'path/with-question-mark?')
self.assertEqual(res[8].b_path, u'path/¯\\_(ツ)_|¯')
self.assertEqual(res[9].b_path, u'path/💩.txt')
self.assertEqual(res[9].b_rawpath, b'path/\xf0\x9f\x92\xa9.txt')
self.assertEqual(res[10].b_path, u'path/�-invalid-unicode-path.txt')
self.assertEqual(res[10].b_rawpath, b'path/\x80-invalid-unicode-path.txt')
# The "Moves"
# NOTE: The path prefixes a/ and b/ here are legit! We're actually
# verifying that it's not "a/a/" that shows up, see the fixture data.
self.assertEqual(res[11].a_path, u'a/with spaces') # NOTE: path a/ here legit!
self.assertEqual(res[11].b_path, u'b/with some spaces') # NOTE: path b/ here legit!
self.assertEqual(res[12].a_path, u'a/ending in a space ')
self.assertEqual(res[12].b_path, u'b/ending with space ')
self.assertEqual(res[13].a_path, u'a/"with-quotes"')
self.assertEqual(res[13].b_path, u'b/"with even more quotes"')
示例7: get_local_changes
def get_local_changes(self):
repo = self._repo
diff_str = repo.git.diff('HEAD', '--full-index')
diff_str = StringIO(diff_str)
diff_str.seek(0)
diff = Diff._index_from_patch_format(repo, diff_str)
root = self.path
return [os.path.relpath(di.a_blob.abspath, root) for di in diff.iter_change_type('M')]
示例8: test_diff_of_modified_files_not_added_to_the_index
def test_diff_of_modified_files_not_added_to_the_index(self):
output = StringProcessAdapter(fixture('diff_abbrev-40_full-index_M_raw_no-color'))
diffs = Diff._index_from_raw_format(self.rorepo, output.stdout)
assert len(diffs) == 1, 'one modification'
assert len(list(diffs.iter_change_type('M'))) == 1, 'one modification'
assert diffs[0].change_type == 'M'
assert diffs[0].b_blob is None
示例9: test_diff_index
def test_diff_index(self):
output = StringProcessAdapter(fixture('diff_index_patch'))
res = Diff._index_from_patch_format(None, output.stdout)
assert len(res) == 6
for dr in res:
assert dr.diff
assert str(dr), "Diff to string conversion should be possible"
# end for each diff
dr = res[3]
assert dr.diff.endswith(b"+Binary files a/rps and b/rps differ\n")
示例10: test_diff_index
def test_diff_index(self):
output = StringProcessAdapter(fixture('diff_index_patch'))
res = Diff._index_from_patch_format(None, output)
self.assertEqual(len(res), 6)
for dr in res:
self.assertTrue(dr.diff.startswith(b'@@'), dr)
self.assertIsNotNone(str(dr), "Diff to string conversion should be possible")
# end for each diff
dr = res[3]
assert dr.diff.endswith(b"+Binary files a/rps and b/rps differ\n")
示例11: get_local_changes
def get_local_changes(self, repo=None):
repo=self._get_repo(repo)
diff_str=repo.git.diff( '--full-index')
patches=map(str.strip, diff_str.split('diff --git'))
patches=['\n'.join(p.split('\n')[2:]) for p in patches[1:]]
diff_str=StringIO(diff_str)
diff_str.seek(0)
index=Diff._index_from_patch_format(repo, diff_str)
return index, patches
示例12: test_diff_with_spaces
def test_diff_with_spaces(self):
data = StringProcessAdapter(fixture('diff_file_with_spaces'))
diff_index = Diff._index_from_patch_format(self.rorepo, data.stdout)
assert diff_index[0].a_path is None, repr(diff_index[0].a_path)
assert diff_index[0].b_path == u'file with spaces', repr(diff_index[0].b_path)
示例13: test_diff_index_raw_format
def test_diff_index_raw_format(self):
output = StringProcessAdapter(fixture('diff_index_raw'))
res = Diff._index_from_raw_format(None, output.stdout)
assert res[0].deleted_file
assert res[0].b_path == ''
示例14: test_diff_with_spaces
def test_diff_with_spaces(self):
data = StringProcessAdapter(fixture('diff_file_with_spaces'))
diff_index = Diff._index_from_patch_format(self.rorepo, data)
self.assertIsNone(diff_index[0].a_path, repr(diff_index[0].a_path))
self.assertEqual(diff_index[0].b_path, u'file with spaces', repr(diff_index[0].b_path))
示例15: test_diff_index_raw_format
def test_diff_index_raw_format(self):
output = StringProcessAdapter(fixture('diff_index_raw'))
res = Diff._index_from_raw_format(None, output)
self.assertIsNotNone(res[0].deleted_file)
self.assertIsNone(res[0].b_path,)