701
701
def diff(self, file_id, old_path, new_path, old_kind, new_kind):
702
702
self.to_file.write('was: ')
703
self.to_file.write(self.old_tree.get_file(file_id).read())
703
self.to_file.write(self.old_tree.get_file(old_path).read())
704
704
self.to_file.write('is: ')
705
self.to_file.write(self.new_tree.get_file(file_id).read())
705
self.to_file.write(self.new_tree.get_file(new_path).read())
709
708
class TestDiffTree(tests.TestCaseWithTransport):
728
727
self.new_tree.add('newdir')
729
728
self.new_tree.add('newdir/newfile', 'file-id')
730
729
differ = diff.DiffText(self.old_tree, self.new_tree, BytesIO())
731
differ.diff_text('file-id', None, 'old label', 'new label')
730
differ.diff_text('olddir/oldfile', None, 'old label',
731
'new label', 'file-id', None)
732
732
self.assertEqual(
733
733
'--- old label\n+++ new label\n@@ -1,1 +0,0 @@\n-old\n\n',
734
734
differ.to_file.getvalue())
735
735
differ.to_file.seek(0)
736
differ.diff_text(None, 'file-id', 'old label', 'new label')
736
differ.diff_text(None, 'newdir/newfile',
737
'old label', 'new label', None, 'file-id')
737
738
self.assertEqual(
738
739
'--- old label\n+++ new label\n@@ -0,0 +1,1 @@\n+new\n\n',
739
740
differ.to_file.getvalue())
740
741
differ.to_file.seek(0)
741
differ.diff_text('file-id', 'file-id', 'old label', 'new label')
742
differ.diff_text('olddir/oldfile', 'newdir/newfile',
743
'old label', 'new label', 'file-id', 'file-id')
742
744
self.assertEqual(
743
745
'--- old label\n+++ new label\n@@ -1,1 +1,1 @@\n-old\n+new\n\n',
744
746
differ.to_file.getvalue())
1454
1456
diff_obj = diff.DiffFromTool(['python', '-c',
1455
1457
'print "@old_path @new_path"'],
1456
1458
basis_tree, tree, output)
1457
diff_obj._prepare_files('file-id', 'file', 'file')
1459
diff_obj._prepare_files('file', 'file', file_id='file-id')
1458
1460
# The old content should be readonly
1459
1461
self.assertReadableByAttrib(diff_obj._root, 'old\\file',
1460
1462
r'R.*old\\file$')
1492
1494
old_tree, tree, output)
1493
1495
self.addCleanup(diff_obj.finish)
1494
1496
self.assertContainsRe(diff_obj._root, 'brz-diff-[^/]*')
1495
old_path, new_path = diff_obj._prepare_files('file-id', 'oldname',
1497
old_path, new_path = diff_obj._prepare_files(
1498
'oldname', 'newname', file_id='file-id')
1497
1499
self.assertContainsRe(old_path, 'old/oldname$')
1498
1500
self.assertEqual(315532800, os.stat(old_path).st_mtime)
1499
1501
self.assertContainsRe(new_path, 'tree/newname$')
1502
1504
if osutils.host_os_dereferences_symlinks():
1503
1505
self.assertTrue(os.path.samefile('tree/newname', new_path))
1504
1506
# make sure we can create files with the same parent directories
1505
diff_obj._prepare_files('file2-id', 'oldname2', 'newname2')
1507
diff_obj._prepare_files('oldname2', 'newname2', file_id='file2-id')
1508
1510
class TestDiffFromToolEncodedFilename(tests.TestCaseWithTransport):