993
993
self.assertEqual(repo.control_url, repo.control_transport.base)
996
class TestDeltaRevisionFiltered(per_repository.TestCaseWithRepository):
996
class TestDeltaRevisionFilesFiltered(per_repository.TestCaseWithRepository):
999
super(TestDeltaRevisionFiltered, self).setUp()
999
super(TestDeltaRevisionFilesFiltered, self).setUp()
1000
1000
self.tree_a = self.make_branch_and_tree('a')
1001
self.build_tree(['a/foo', 'a/bar/', 'a/bar/b1', 'a/bar/b2', 'a/baz'])
1002
self.tree_a.add(['foo', 'bar', 'bar/b1', 'bar/b2', 'baz'])
1003
self.bar_id = self.tree_a.path2id('bar')
1002
['a/foo', 'a/bar/', 'a/bar/b1', 'a/bar/b2', 'a/baz', 'a/oldname'])
1003
self.tree_a.add(['foo', 'bar', 'bar/b1', 'bar/b2', 'baz', 'oldname'])
1004
1004
self.rev1 = self.tree_a.commit('rev1')
1005
1005
self.build_tree(['a/bar/b3'])
1006
1006
self.tree_a.add('bar/b3')
1007
self.tree_a.rename_one('oldname', 'newname')
1007
1008
self.rev2 = self.tree_a.commit('rev2')
1008
1009
self.repository = self.tree_a.branch.repository
1009
1010
self.addCleanup(self.repository.lock_read().unlock)
1011
1012
def test_multiple_files(self):
1012
1013
# Test multiple files
1013
delta = list(self.repository.get_deltas_for_revisions(
1014
[self.repository.get_revision(self.rev1)], specific_fileids=[
1015
self.tree_a.path2id('foo'),
1016
self.tree_a.path2id('baz')]))[0]
1014
delta = list(self.repository.get_revision_deltas(
1015
[self.repository.get_revision(self.rev1)], specific_files=[
1017
1017
self.assertIsInstance(delta, _mod_delta.TreeDelta)
1018
1018
self.assertEqual([
1019
1019
('baz', 'file'),
1023
1023
def test_directory(self):
1024
1024
# Test a directory
1025
delta = list(self.repository.get_deltas_for_revisions(
1025
delta = list(self.repository.get_revision_deltas(
1026
1026
[self.repository.get_revision(self.rev1)],
1027
specific_fileids=[self.bar_id]))[0]
1027
specific_files=['bar']))[0]
1028
1028
self.assertIsInstance(delta, _mod_delta.TreeDelta)
1029
1029
self.assertEqual([
1030
1030
('bar', 'directory'),
1035
1035
def test_unrelated(self):
1036
1036
# Try another revision
1037
delta = list(self.repository.get_deltas_for_revisions(
1037
delta = list(self.repository.get_revision_deltas(
1038
1038
[self.repository.get_revision(self.rev2)],
1039
specific_fileids=[self.tree_a.path2id('foo')]))[0]
1039
specific_files=['foo']))[0]
1040
1040
self.assertIsInstance(delta, _mod_delta.TreeDelta)
1041
1041
self.assertEqual([], delta.added)
1043
def test_renamed(self):
1044
# Try another revision
1046
self.repository.revision_tree(self.rev2).has_filename('newname'))
1048
self.repository.revision_tree(self.rev1).has_filename('oldname'))
1050
self.repository.get_revision(self.rev2),
1051
self.repository.get_revision(self.rev1)]
1052
delta2, delta1 = list(self.repository.get_revision_deltas(
1053
revs, specific_files=['newname']))
1054
self.assertIsInstance(delta1, _mod_delta.TreeDelta)
1055
self.assertEqual([('oldname', 'newname')], [c.path for c in delta2.renamed])
1056
self.assertIsInstance(delta2, _mod_delta.TreeDelta)
1057
self.assertEqual(['oldname'], [c.path[1] for c in delta1.added])
1043
1059
def test_file_in_directory(self):
1044
1060
# Test a file in a directory, both of which were added
1045
delta = list(self.repository.get_deltas_for_revisions(
1061
delta = list(self.repository.get_revision_deltas(
1046
1062
[self.repository.get_revision(self.rev1)],
1047
specific_fileids=[self.tree_a.path2id('bar/b2')]))[0]
1063
specific_files=['bar/b2']))[0]
1048
1064
self.assertIsInstance(delta, _mod_delta.TreeDelta)
1049
1065
self.assertEqual([
1050
1066
('bar', 'directory'),
1052
1068
], [(c.path[1], c.kind[1]) for c in delta.added])
1054
1070
def test_file_in_unchanged_directory(self):
1055
delta = list(self.repository.get_deltas_for_revisions(
1071
delta = list(self.repository.get_revision_deltas(
1056
1072
[self.repository.get_revision(self.rev2)],
1057
specific_fileids=[self.tree_a.path2id('bar/b3')]))[0]
1073
specific_files=['bar/b3']))[0]
1058
1074
self.assertIsInstance(delta, _mod_delta.TreeDelta)
1059
1075
if [(c.path[1], c.kind[1]) for c in delta.added] == [
1060
1076
('bar', 'directory'), ('bar/b3', 'file')]: