60
60
self.addCleanup(repo.unlock)
63
def get_all_deltas(self, repo, *args, **kwargs):
64
revisions = [repo.get_revision(r) for r in
65
['rev1', 'rev2', 'rev3', 'rev4', 'rev5', 'rev6']]
66
return list(repo.get_deltas_for_revisions(revisions, *args, **kwargs))
63
68
def test_all_changes(self):
64
69
repo = self.make_repo_with_history()
65
revisions = [repo.get_revision(r) for r in
66
['rev1', 'rev2', 'rev3', 'rev4', 'rev5', 'rev6']]
67
deltas1 = list(repo.get_deltas_for_revisions(revisions))
68
# TODO: this is a bad test, as 'get_revision_delta()' is
70
# TODO: this isn't a great test, as 'get_revision_delta()' is
69
71
# implemented in terms of get_deltas_for_revisions()...
70
72
# but it is the test we had before
73
revisions = [repo.get_revision(r) for r in
74
['rev1', 'rev2', 'rev3', 'rev4', 'rev5', 'rev6']]
75
deltas1 = list(repo.get_deltas_for_revisions(revisions))
71
76
deltas2 = [repo.get_revision_delta(r.revision_id) for r in revisions]
72
77
self.assertEqual(deltas1, deltas2)
73
78
for delta in deltas1:
79
84
def test_filtered_file_changes(self):
80
85
repo = self.make_repo_with_history()
81
revisions = [repo.get_revision(r) for r in
82
['rev1', 'rev2', 'rev3', 'rev4', 'rev5', 'rev6']]
83
deltas = list(repo.get_deltas_for_revisions(revisions,
84
specific_fileids=['subfile-id']))
86
deltas = self.get_all_deltas(repo, specific_fileids=['subfile-id'])
85
87
# Only modified in rev1 and rev5
86
88
self.assertEqual([True, False, False, False, True, False],
87
89
[d.has_changed() for d in deltas])
89
91
def test_filtered_dirs_include_children(self):
90
92
repo = self.make_repo_with_history()
91
revisions = [repo.get_revision(r) for r in
92
['rev1', 'rev2', 'rev3', 'rev4', 'rev5', 'rev6']]
93
deltas = list(repo.get_deltas_for_revisions(revisions,
94
specific_fileids=['dir-id']))
93
deltas = self.get_all_deltas(repo, specific_fileids=['dir-id'])
95
94
# a child was modified in all but rev2
96
95
self.assertEqual([True, False, True, True, True, True],
97
96
[d.has_changed() for d in deltas])
99
98
def test_filtered_includes_parents(self):
100
99
repo = self.make_repo_with_history()
101
revisions = [repo.get_revision(r) for r in
102
['rev1', 'rev2', 'rev3', 'rev4', 'rev5', 'rev6']]
103
deltas = list(repo.get_deltas_for_revisions(revisions,
104
specific_fileids=['subsubfile-id']))
100
deltas = self.get_all_deltas(repo, specific_fileids=['subsubfile-id'])
105
101
self.assertEqual([True, False, True, True, False, True],
106
102
[d.has_changed() for d in deltas])