221
221
def test_internal_diff_iso_8859_1(self):
222
222
output = BytesIO()
223
diff.internal_diff(u'old_\xb5', ['old_text\n'],
224
u'new_\xe5', ['new_text\n'], output,
223
diff.internal_diff(u'old_\xb5', [b'old_text\n'],
224
u'new_\xe5', [b'new_text\n'], output,
225
225
path_encoding='iso-8859-1')
226
226
lines = output.getvalue().splitlines(True)
227
227
self.check_patch(lines)
228
self.assertEqual(['--- old_\xb5\n',
228
self.assertEqual([b'--- old_\xb5\n',
230
b'@@ -1,1 +1,1 @@\n',
237
237
def test_internal_diff_no_content(self):
238
238
output = BytesIO()
239
239
diff.internal_diff(u'old', [], u'new', [], output)
240
self.assertEqual('', output.getvalue())
240
self.assertEqual(b'', output.getvalue())
242
242
def test_internal_diff_no_changes(self):
243
243
output = BytesIO()
244
diff.internal_diff(u'old', ['text\n', 'contents\n'],
245
u'new', ['text\n', 'contents\n'],
244
diff.internal_diff(u'old', [b'text\n', b'contents\n'],
245
u'new', [b'text\n', b'contents\n'],
247
self.assertEqual('', output.getvalue())
247
self.assertEqual(b'', output.getvalue())
249
249
def test_internal_diff_returns_bytes(self):
251
diff.internal_diff(u'old_\xb5', ['old_text\n'],
252
u'new_\xe5', ['new_text\n'], output)
251
diff.internal_diff(u'old_\xb5', [b'old_text\n'],
252
u'new_\xe5', [b'new_text\n'], output)
253
253
output.check_types(self, bytes)
255
255
def test_internal_diff_default_context(self):
564
562
tree = self.make_branch_and_tree('tree')
566
564
tt = transform.TreeTransform(tree)
567
tt.new_file('a', tt.root, ['contents\n'], b'a-id', True)
568
tt.new_file('b', tt.root, ['contents\n'], b'b-id', False)
569
tt.new_file('c', tt.root, ['contents\n'], b'c-id', True)
570
tt.new_file('d', tt.root, ['contents\n'], b'd-id', False)
571
tt.new_file('e', tt.root, ['contents\n'], b'control-e-id', True)
572
tt.new_file('f', tt.root, ['contents\n'], b'control-f-id', False)
565
tt.new_file('a', tt.root, [b'contents\n'], b'a-id', True)
566
tt.new_file('b', tt.root, [b'contents\n'], b'b-id', False)
567
tt.new_file('c', tt.root, [b'contents\n'], b'c-id', True)
568
tt.new_file('d', tt.root, [b'contents\n'], b'd-id', False)
569
tt.new_file('e', tt.root, [b'contents\n'], b'control-e-id', True)
570
tt.new_file('f', tt.root, [b'contents\n'], b'control-f-id', False)
574
572
tree.commit('one', rev_id=b'rev-1')
576
574
tt = transform.TreeTransform(tree)
577
tt.set_executability(False, tt.trans_id_file_id('a-id'))
578
tt.set_executability(True, tt.trans_id_file_id('b-id'))
579
tt.set_executability(False, tt.trans_id_file_id('c-id'))
580
tt.set_executability(True, tt.trans_id_file_id('d-id'))
575
tt.set_executability(False, tt.trans_id_file_id(b'a-id'))
576
tt.set_executability(True, tt.trans_id_file_id(b'b-id'))
577
tt.set_executability(False, tt.trans_id_file_id(b'c-id'))
578
tt.set_executability(True, tt.trans_id_file_id(b'd-id'))
582
580
tree.rename_one('c', 'new-c')
583
581
tree.rename_one('d', 'new-d')
788
786
('new-tree/newdir/newfile', b'new\n')])
789
787
self.new_tree.add('newdir')
790
788
self.new_tree.add('newdir/newfile', b'file-id')
791
self.differ.diff('file-id', 'olddir/oldfile', 'newdir/newfile')
789
self.differ.diff(b'file-id', 'olddir/oldfile', 'newdir/newfile')
792
790
self.assertContainsRe(
793
791
self.differ.to_file.getvalue(),
794
792
r'--- olddir/oldfile.*\n\+\+\+ newdir/newfile.*\n\@\@ -1,1 \+1,1'
804
802
os.symlink('new', 'new-tree/newdir/newfile')
805
803
self.new_tree.add('newdir')
806
804
self.new_tree.add('newdir/newfile', b'file-id')
807
self.differ.diff('file-id', 'olddir/oldfile', 'newdir/newfile')
805
self.differ.diff(b'file-id', 'olddir/oldfile', 'newdir/newfile')
808
806
self.assertContainsRe(
809
807
self.differ.to_file.getvalue(),
810
808
r'--- olddir/oldfile.*\n\+\+\+ newdir/newfile.*\n\@\@ -1,1 \+0,0'
837
835
differ = diff.DiffTree(self.old_tree, self.new_tree, BytesIO())
839
837
diff.DiffTree.diff_factories = old_diff_factories
840
differ.diff('file-id', 'olddir/oldfile', 'newdir/newfile')
838
differ.diff(b'file-id', 'olddir/oldfile', 'newdir/newfile')
841
839
self.assertNotContainsRe(
842
840
differ.to_file.getvalue(),
843
841
r'--- olddir/oldfile.*\n\+\+\+ newdir/newfile.*\n\@\@ -1,1 \+1,1'
849
847
self.create_old_new()
850
848
differ = diff.DiffTree(self.old_tree, self.new_tree, BytesIO(),
851
849
extra_factories=[DiffWasIs.from_diff_tree])
852
differ.diff('file-id', 'olddir/oldfile', 'newdir/newfile')
850
differ.diff(b'file-id', 'olddir/oldfile', 'newdir/newfile')
853
851
self.assertNotContainsRe(
854
852
differ.to_file.getvalue(),
855
853
r'--- olddir/oldfile.*\n\+\+\+ newdir/newfile.*\n\@\@ -1,1 \+1,1'
1576
1574
tree.add('file', b'file-id')
1577
1575
tree.commit('old tree', timestamp=0, rev_id=b"old-id")
1578
1576
self.build_tree_contents([('tree/file', b'newcontent')])
1579
tree.commit('new tree', timestamp=0, rev_id="new-id")
1577
tree.commit('new tree', timestamp=0, rev_id=b"new-id")
1581
1579
revisions = [revisionspec.RevisionSpec.from_string('1'),
1582
1580
revisionspec.RevisionSpec.from_string('2')]
1586
1584
['tree'], revisions, None, None)
1588
1586
self.assertIsInstance(old_tree, revisiontree.RevisionTree)
1589
self.assertEqual("old-id", old_tree.get_revision_id())
1587
self.assertEqual(b"old-id", old_tree.get_revision_id())
1590
1588
self.assertIsInstance(new_tree, revisiontree.RevisionTree)
1591
self.assertEqual("new-id", new_tree.get_revision_id())
1589
self.assertEqual(b"new-id", new_tree.get_revision_id())
1592
1590
self.assertEqual(tree.branch.base, old_branch.base)
1593
1591
self.assertEqual(tree.branch.base, new_branch.base)
1594
1592
self.assertIs(None, specific_files)