1149
1149
# revisions are not in the same order.
1150
1150
self.assertReversed([('1', 2), ('2', 2), ('3', 3), ('4', 4)],
1151
1151
[('3', 3), ('4', 4), ('2', 2), ('1', 2),])
1154
class TestHistoryChange(tests.TestCaseWithTransport):
1156
def setup_a_tree(self):
1157
tree = self.make_branch_and_tree('tree')
1159
self.addCleanup(tree.unlock)
1160
tree.commit('1a', rev_id='1a')
1161
tree.commit('2a', rev_id='2a')
1162
tree.commit('3a', rev_id='3a')
1165
def setup_ab_tree(self):
1166
tree = self.setup_a_tree()
1167
tree.set_last_revision('1a')
1168
tree.branch.set_last_revision_info(1, '1a')
1169
tree.commit('2b', rev_id='2b')
1170
tree.commit('3b', rev_id='3b')
1173
def setup_ac_tree(self):
1174
tree = self.setup_a_tree()
1175
tree.set_last_revision(revision.NULL_REVISION)
1176
tree.branch.set_last_revision_info(0, revision.NULL_REVISION)
1177
tree.commit('1c', rev_id='1c')
1178
tree.commit('2c', rev_id='2c')
1179
tree.commit('3c', rev_id='3c')
1182
def test_all_new(self):
1183
tree = self.setup_ab_tree()
1184
old, new = log.get_history_change('1a', '3a', tree.branch.repository)
1185
self.assertEqual([], old)
1186
self.assertEqual(['2a', '3a'], new)
1188
def test_all_old(self):
1189
tree = self.setup_ab_tree()
1190
old, new = log.get_history_change('3a', '1a', tree.branch.repository)
1191
self.assertEqual([], new)
1192
self.assertEqual(['2a', '3a'], old)
1194
def test_null_old(self):
1195
tree = self.setup_ab_tree()
1196
old, new = log.get_history_change(revision.NULL_REVISION,
1197
'3a', tree.branch.repository)
1198
self.assertEqual([], old)
1199
self.assertEqual(['1a', '2a', '3a'], new)
1201
def test_null_new(self):
1202
tree = self.setup_ab_tree()
1203
old, new = log.get_history_change('3a', revision.NULL_REVISION,
1204
tree.branch.repository)
1205
self.assertEqual([], new)
1206
self.assertEqual(['1a', '2a', '3a'], old)
1208
def test_diverged(self):
1209
tree = self.setup_ab_tree()
1210
old, new = log.get_history_change('3a', '3b', tree.branch.repository)
1211
self.assertEqual(old, ['2a', '3a'])
1212
self.assertEqual(new, ['2b', '3b'])
1214
def test_unrelated(self):
1215
tree = self.setup_ac_tree()
1216
old, new = log.get_history_change('3a', '3c', tree.branch.repository)
1217
self.assertEqual(old, ['1a', '2a', '3a'])
1218
self.assertEqual(new, ['1c', '2c', '3c'])
1220
def test_show_branch_change(self):
1221
tree = self.setup_ab_tree()
1223
log.show_branch_change(tree.branch, s, 3, '3a')
1224
self.assertContainsRe(s.getvalue(),
1225
'[*]{60}\nRemoved Revisions:\n(.|\n)*2a(.|\n)*3a(.|\n)*'
1226
'[*]{60}\n\nAdded Revisions:\n(.|\n)*2b(.|\n)*3b')
1228
def test_show_branch_change_no_change(self):
1229
tree = self.setup_ab_tree()
1231
log.show_branch_change(tree.branch, s, 3, '3b')
1232
self.assertEqual(s.getvalue(),
1233
'Nothing seems to have changed\n')
1235
def test_show_branch_change_no_old(self):
1236
tree = self.setup_ab_tree()
1238
log.show_branch_change(tree.branch, s, 2, '2b')
1239
self.assertContainsRe(s.getvalue(), 'Added Revisions:')
1240
self.assertNotContainsRe(s.getvalue(), 'Removed Revisions:')
1242
def test_show_branch_change_no_new(self):
1243
tree = self.setup_ab_tree()
1244
tree.branch.set_last_revision_info(2, '2b')
1246
log.show_branch_change(tree.branch, s, 3, '3b')
1247
self.assertContainsRe(s.getvalue(), 'Removed Revisions:')
1248
self.assertNotContainsRe(s.getvalue(), 'Added Revisions:')